当前位置:   article > 正文

[BT]小迪安全2023学习笔记(第27天:Web攻防-SQL数据类型注入)

[BT]小迪安全2023学习笔记(第27天:Web攻防-SQL数据类型注入)

第27天

数字和字符串

在SQL中,数字可以不需要单引号,但是字符串需要单引号闭合(不然识别不了)

搜索型

SQL查询语句在字符串有单引号的基础上可能还加入了类似%通配符,也需要考虑将其闭合

编码型

提交的数据是编码后的值,网站接收后解码再交给SQL执行,需要考虑对Payload进行编码后提交
例如有些网站url传递的参数喜欢用md5或者base64编码后再进行访问

加密型

网站对输入的信息进行了加密,在SQL端解密后进行查询

编码型和加密型都只相当于多了一步数据格式变换,其注入方法依旧不变

对于可能是Base64编码后的SQL注入:

python sqlmap.py -u "URL地址?id=NA==" --tamper=base64encode.py
  • 1

可以看到网站id值是Base64值,因此使用--tamper参数带上可以对注入点进行Base64编码攻击的脚本

宽字节注入

在平常注入攻击时经常使用单引号闭合前面的SQL查询语句,但是如果网站对符号进行了转义(在符号前面加\

也就是:' -> \'

这时就可以使用宽字节注入了,原理是中文乱码字符或者繁体字在存储时占用两个字节,而\只占用一个字节,因此如果是 �'(乱码字符编码是%df)

那么SQL转义后就是 �\'\的空间被前面的乱码字符占用了,因此本身就被屏蔽掉了不能发挥作用

python sqlmap.py -u "URL地址?id=1" --tamper=unmagicquotes.py
  • 1

使用--tamper参数带上自动进行绕过转义的攻击脚本

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号