首页 > 其他 > 详细

宽字节注入原理及绕过方式

时间:2021-08-13 14:45:04      阅读:16      评论:0      收藏:0      [点我收藏+]
前言
众所周知,SQL注入作为危害最大的攻击方式,开发人员在开发时一定会想办法去防范,在这里我们介绍一种新的方式——宽字节注入法去绕过设置的障碍
原理
一般来说,如果开发人员在开发是时候,对传入的参数进行了特殊的函数处理,比如使用了trim()函数,htmlspecialchars()函数,addlashes函数,是可以过滤我们非法提交的参数,从而导致SQL注入无法成功。
作为攻击者,要完成的是对参数的拼接,从而导致恶意的SQL语句写入。作为开发者要完成的是SQL输出参数的一个过滤比如对恶意的字符进行转移
常用过滤函数
trim()函数
移除字符串两侧的空白字符或其他预定义字符
htmlspecialchars()函数
把预定义的字符"<"">"换为HTML实体,预防XSS
addslashes()函数
返回在预定义字符之前添加反斜杠的字符串
# 预定义字符
1.单引号(‘)
2.双引号(")
3.反斜杠(\)
4.NULL
上述函数常在CMS里使用进行过滤
宽字节注入条件
1.数据库为GBK编码
2.使用了转义函数,将、POGETSTcookie传递的参数进行过滤,将单引号、双引号、null等敏感字符用转义符 \ 进行转义
绕过方式
root %df‘ or 1=1 #
# 原理:在GBK编码中,反斜杠的编码是%5c,在输入%df后,使得添加反斜杠后形成%df%5c,而%df%5c是繁体字“”,单引号成功逃逸,爆出Mysql数据库的错误
以pikachu为例
我们在正常updatexml()注入后发现不成功
技术分享图片技术分享图片
接下来尝试宽字节注入,而直接在网页中提交依然不行,所以判断为POST请求,使用抓包工具进行注入
技术分享图片技术分享图片
注入成功
技术分享图片技术分享图片
 
 
 
 
 
 
 
 

宽字节注入原理及绕过方式

原文:https://www.cnblogs.com/hide-in-dark/p/15136893.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!