SQL注入进阶:POST型+宽字节+盲注

问题描述

在使用正常的宽字节注入方法中发现,我们使用%df,去尝试吃掉\;如图1。然而在后端过滤的时候,我们的%请求体中被转化成了%25,如图2。所以最后使我们想要的%df\结合失败,反斜杠\仍然了保留了下来,导致我们想要构造的SQL语句无法成功。

图1
图1
图2
图2

原因分析:

  • 后端过滤数据的时候,可能设置了编码格式转换,当我们提交表单数据的时候,我们的输入的%被转化为了%25
  • 传输数据到数据库时,传入的%25df与反斜杠\没能成功结合,使得\保留了下来
  • 最后\将我们构造的SQL语句中的'结合在一起,转义成了其他字符,使得我们构造闭合无法成功

解决方案:

burp Suite为例

  • 在抓到数据包之后,将包发送到Repeater模块,快捷键Ctrl+R
  • %25df修改为%df,之后再测试(构造)我们想要的SQL语句,经过测试,本关卡应当使用盲注解决,如图3-图4

图3
在这里插入图片描述
图4
图4

总结

  1. 宽字节注入过程中的基本思路:
    ①去掉有转义功能的反斜杠\
    ②保留我们构造语句中的引号',使我们构造的语句能够成功执行。
  2. 宽字节中,我们构造的%df并不是唯一的,也可以使用其他的宽字节,只要满足字符串编码即可(ascii码大于128)。比如:129 =》0x81 =》%81
  3. 常见的宽字节有:%df、%81、%82、%de 等等
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值