SQL注入——宽字节注入原理及绕过方式
时间:2021-08-13
本文章向大家介绍SQL注入——宽字节注入原理及绕过方式,主要包括SQL注入——宽字节注入原理及绕过方式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
众所周知,SQL注入作为危害最大的攻击方式,开发人员在开发时一定会想办法去防范,在这里我们介绍一种新的方式——宽字节注入法去绕过设置的障碍
原理
一般来说,如果开发人员在开发是时候,对传入的参数进行了特殊的函数处理,比如使用了trim()函数,htmlspecialchars()函数,addlashes函数,是可以过滤我们非法提交的参数,从而导致SQL注入无法成功。
作为攻击者,要完成的是对参数的拼接,从而导致恶意的SQL语句写入。作为开发者要完成的是SQL输出参数的一个过滤比如对恶意的字符进行转移
常用过滤函数
trim()函数
移除字符串两侧的空白字符或其他预定义字符
htmlspecialchars()函数
把预定义的字符"<"和">"转换为HTML实体,预防XSS
addslashes()函数
返回在预定义字符之前添加反斜杠的字符串
# 预定义字符
1.单引号(')
2.双引号(")
3.反斜杠(\)
4.NULL
上述函数常在CMS里使用进行过滤
宽字节注入条件
1.数据库为GBK编码
2.使用了转义函数,将、POGETST、cookie传递的参数进行过滤,将单引号、双引号、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
- 巧用CSS3 :target 伪类制作Dropdown下拉菜单(无JS)
- 开源的虚拟机软件 VirtualBox v1.5.2
- Farseer:一个用于Silverlight和XNA的开源物理引擎
- Visual Studio 2008 debug的时候发生郁闷的错误ContextSwitchDeadlock was detected
- LINQ TO XML
- 不被未来折叠掉:AI时代下的思考
- Google 分析的基准化测试
- WebFont 三宗罪之一:WebFont 与 FOUT
- 探究基于声明的身份标识
- 深化“互联网+先进制造业”发展工业互联网的系列解读二:打造平台体系
- WebFont 三宗罪之二:吹毛求疵的WebFont 渲染差异
- IDC发布IT转型报告,现代化、自动化、转型三要素必不可少
- 存储过程和触发器的应用
- 两部委印发车联网产业标准体系建设指南 提到了自动驾驶
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 树形结构--二叉树以及二叉树的遍历(十七)
- TEA算法解析
- localStorage sessionStorage
- 伪类
- js拖拽
- 灵魂拷问:你真的理解System.out.println()打印原理吗?
- 移动端video的项目
- 移动端(video) transformOringe addEventListener
- clip-path
- 移动端的box-shadow
- 杭电的题,输出格式卡的很严。HDU 1716 排列2
- 移动端的(-webkit-linear-gradient -webkit-radial-gradient)
- ACM一年记,总结报告(希望自己可以走得很远)
- 移动端顺序问题上
- [USACO1.5]回文质数 Prime Palindromes