@ * _ + - ./ ; ? : @ & = + $ , # ' 空格
转码对象可用:
例子2:匹配过滤
防御:绕过
mysql_real_escape_string()函数转义 SQL 语句中应用的字符串中的特别字符。
关键词and,or常被用做简单测试网站是否轻易进行注入进击。这里给削发单的绕过应用&&,||分别调换and,or。
-
过滤注入: 1 or 1 = 1 1 and 1 = 1
-
我们可以纰谬输入和输出数据库的字符串数据作addslashes()和stripslashes()的操作,数据也会正常显示。
绕过注入: 1 || 1 = 1 1 && 1 = 1
关于preg_match过滤可以看参考文┞仿,文┞仿里讲得很具体了。
例子3:strstr
防御:

strstr ()查找字符串的初次出现,该函数区分大年夜小写。如不雅想要不区分大年夜小写,应用stristr()。(留意后面这个函数多了个i)
绕过:
strstr()函数是对大年夜小写敏感的,所以我们可以经由过程大年夜小写变种来绕过

payload:
http://localhost/injection/user.php?id=1uNion select null,null,null
例子4:空格过滤
防御:

1)应用内联注释。
2)应用换行符代替空格。留意办事器若为Windows则换行符为%0A%0D,Linux则为%0A。
http://localhost/injection/user.php?id=1/**/and/**/11=1 http://localhost/injection/user.php?id=1%0A%0Dand%0A%0D1=1
例子5:空字节
平日的输入过滤器都是在应用法度榜样之外的代码实现的。比如入侵检测体系(IDS),这些系同一般是由原生编程说话开辟而成,比如C++,为什么空字节能起感化呢,就是因为在原生变成说话中,根据字符串肇端地位到第一个出现空字节的地位来肯定字符串长度。所以说空字节就有效的终止了字符串。
绕过:
只须要在过滤器阻拦的字符串前面供给一个采取URL编码的空字节即可。
payload:

例子6:构造有意过滤
绕过:
文件的63行开端可以看到,此处将传入的%27和%2527都进行删除处理,也就是还没传入数据库前就已经被该逝世的法度榜样吃了,然则在67行看到他还吃了*,如许我们就有办法了,我们构造%*27,如许法度榜样吃掉落星号*后,%27就会被传入。
payload:
(id=1' and '1'='1-->id%3D1%*27%*20and%*20%*271%*27%3D%*271)
【编辑推荐】
- 【MYSQL】营业上碰着的SQL问题整顿集合
- MySQL数据类型隐式转换规矩
- Python操作SQLite/MySQL/LMDB/LevelDB
- 5分钟快速入门,用Python做SQLite数据库开辟,附代码合适初学
- MySQL等传统关系型数据库弱爆了!GPU数据库才是将来趋势!
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 1、若何看当前Linux体系有几颗物理CPU和每颗CPU的核数?答:[root@centos6 ~ 10:55 #35]# cat /proc/cpuinf>>>详细阅读
本文标题:SQL黑客注入防御与绕过的多种姿势
地址:http://www.17bianji.com/lsqh/40103.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示