下面列举几个防御与绕过的例子:
参考:
【编辑推荐】
- 思科尤岱伟:思科安然因“产品组合”与“集成架构”变得不合
- Python安然运维拭魅战:针对几种特定隐蔽方法的Webshell查杀
- 基于BLE的IoT智能灯胆的安然马脚应用
- 信息互通联动防御 亚信安然翻开融合终端安然新篇章
- 大年夜移动应用加固到威逼大年夜数据安然,爱加密要做将来新型安然“探路者”
例子1:addslashes
防御:
这里用了addslashes转义。
绕过:
- 将字符串转为16进制编码数据或应用char函数(十进制)进行转化(因为数据库会主动把16进制转化)
- 用注释符去掉落输入暗码部分如“-- /* #”
1. 封闭缺点提示
- http://localhost/injection/user.php?username=admin-- hack
(因为有的SQL请求--后要有空格,所以此处加上了hack)
- http://localhost/injection/user.php?username=admin/*
(escape不转义/*)
- http://localhost/injection/user.php?username=admin%23
(这里的%23即为#,注释掉落后面的暗码部分。留意IE浏览器会将#转换为空)
- http://localhost/injection/user.php?username=0x61646d696e23
- http://localhost/injection/user.php?username=CHAR(97,100, 109, 105, 110, 35)
(admin# -->CHAR(97, 100, 109, 105, 110, 35))
因为一般前端JavaScript都邑escape()、encodeURL或encodeURIComponent编码再传输给办事器,重要为encodeURL,如下,所以可以应用这点。
JavaScript代码如:
拦截请求:
1)escape( )
对ASCII字母、数字、标点符号"@* _ + - . /"一向行编码。在\u0000到\u00ff之间的符号被转成%xx的情势,其余符号被转成%uxxxx的情势。(留意escape()纰谬"+"编码,而日常平凡表单中的空格会变成+)
2) encodeURL
对" ; / ? : @ & = + $ , # ' "一向行编码。编码后,它输出符号的utf-8情势,并且在每个字节前加上%。
3) encodeURIComponent
常用编码:
- @ * _ + - ./ ; \ ? : @ & = + $ , # ' 空格
转码对象可用:
http://evilcos.me/lab/xssor/
参考:
《URL编码》:
http://www.ruanyifeng.com/blog/2010/02/url_encoding.html
例子2:匹配过滤
防御:
绕过:
关键词and,or常被用做简单测试网站是否轻易进行注入进击。这里给削发单的绕过应用&&,||分别调换and,or。
- 过滤注入: 1 or 1 = 1 1 and 1 = 1
- 绕过注入: 1 || 1 = 1 1 && 1 = 1
参考:
《高等SQL注入:混淆和绕过》:
http://www.cnblogs.com/croot/p/3450262.html
例子3:strstr
防御:
strstr ()查找字符串的初次出现,该函数区分大年夜小写。如不雅想要不区分大年夜小写,应用stristr()。(留意后面这个函数多了个i)
绕过:
strstr()函数是对大年夜小写敏感的,所以我们可以经由过程大年夜小写变种来绕过
payload:
推荐阅读
大年夜多半云备份产品以专有的备份格局存储数据。在产生灾害的情况下,数据必须被提取,并由虚拟机有企业客户>>>详细阅读
本文标题:SQL注入防御与绕过的几种姿势
地址:http://www.17bianji.com/lsqh/35031.html
1/2 1