作家
登录

SQL黑客注入防御与绕过的多种姿势

作者: 来源: 2017-12-25 09:08:35 阅读 我要评论

@ * _ + - ./ ;  ? : @ & = + $ , # ' 空格

转码对象可用:

例子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

防御:

SQL黑客注入防御与绕过的多种姿势

strstr ()查找字符串的初次出现,该函数区分大年夜小写。如不雅想要不区分大年夜小写,应用stristr()。(留意后面这个函数多了个i)

绕过:

strstr()函数是对大年夜小写敏感的,所以我们可以经由过程大年夜小写变种来绕过

SQL黑客注入防御与绕过的多种姿势

payload:

http://localhost/injection/user.php?id=1uNion select null,null,null

例子4:空格过滤

防御:

SQL黑客注入防御与绕过的多种姿势

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:

SQL黑客注入防御与绕过的多种姿势

例子6:构造有意过滤

绕过:

文件的63行开端可以看到,此处将传入的%27和%2527都进行删除处理,也就是还没传入数据库前就已经被该逝世的法度榜样吃了,然则在67行看到他还吃了*,如许我们就有办法了,我们构造%*27,如许法度榜样吃掉落星号*后,%27就会被传入。

payload:

(id=1' and '1'='1-->id%3D1%*27%*20and%*20%*271%*27%3D%*271)

【编辑推荐】

  1. 【MYSQL】营业上碰着的SQL问题整顿集合
  2. MySQL数据类型隐式转换规矩
  3. Python操作SQLite/MySQL/LMDB/LevelDB
  4. 5分钟快速入门,用Python做SQLite数据库开辟,附代码合适初学
  5. MySQL等传统关系型数据库弱爆了!GPU数据库才是将来趋势!
【义务编辑:庞桂玉 TEL:(010)68476606】

  推荐阅读

  39条常见的Linux系统简单面试题

【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 1、若何看当前Linux体系有几颗物理CPU和每颗CPU的核数?答:[root@centos6 ~ 10:55 #35]# cat /proc/cpuinf>>>详细阅读


本文标题:SQL黑客注入防御与绕过的多种姿势

地址:http://www.17bianji.com/lsqh/40103.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)