首页 > WebSecurity > 绕过sql注入过滤的一些方法

绕过sql注入过滤的一些方法

对于Web安全一直以来都没有什么了解。本文也是讲的比较菜的技术。sql注入在很早很早以前是很常见的一个漏洞。后来随着安全水平的提高,sql注入已经很少能够看到了。但是就在今天,还有很多网站带着sql注入漏洞在运行。稍微有点安全意识的朋友就应该懂得要做一下sql注入过滤。下面是一些绕过sql注入过滤的一些方法(没有深入研究之意,所以只是集中简单的绕过sql注入过滤方法)

1. 绕过空格过滤
使用注释/**/来替换,类似C语言一样,C语言在编译之前注释会被用个空格替换。

select/**/pwd/**/from/**/usertable/**/where/**/id='admin'

2.绕过关键字过滤
很多人都对select, union操作关键字等进行了过滤,但是有可能没有考虑大小写的问题。

SeLeCT pwd from usertable where id='admin'

3.用编码绕过关键字过滤
可以把字符转换为%加上16进制的形式,如or 1=1即%6f%72%20%31%3d%31

4.使用char来绕过过滤
使用char(ASCII码)来替换字符,可以直接在MySql下工作。CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)为or 1=1的编码。

select pwd from usertable where id='root' + CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)

5.绕过其他一些过滤机制
有些朋友会把提交的数据中的敏感字直接删除,这个还是可以绕过的。例如,试图从提交数据中删除and,可以尝试提交anandd或者aandnd

6.对于or 1=1这样的语句还可以用字符串替换

select pwd from usertable where id='root' or 'haha'='haha'

或者

select pwd from usertable where id='root' or 'haha'='ha'+'ha'

暂时只是了解了这么一点,网上还有很多绕过过滤的文章,有兴趣的可以自己看吧。


觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> 绕过sql注入过滤的一些方法
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



分类: WebSecurity 标签: , ,
  1. 银翼
    2011年5月2日09:46 | #1

    空格的话还能用tab和+来替换,有些关键字也能用+来拆分,不过这种情况比较少见。
    此外就是like替换,然后and关键字换or或者xor诸如此类OOXX的东东,话说这种一阶inj都觉得厌烦了。国内的安全水平实在让人纠结。

    [回复]

  2. 2011年5月2日12:01 | #2

    @银翼
    这垃圾主机空间的速度越来越卡了 真无语

    [回复]

  3. 2011年5月2日12:03 | #3

    @银翼
    呵呵 高阶的东西没研究。like匹配用的吧。前几天无聊的时候看了某网站。。。现在JSP都是获取参数之后做转换的,加上这些东西转换到整数就会抛出异常,最多能看到一个异常页面,得不到多少有用的信息。所以不过滤的话也就是用户友好性差一点罢了。
    倒是一些搜索框,如果没有过滤的话可以把表名爆出来。。。

    [回复]

  4. xinling
    2011年6月3日11:08 | #4

    @代码疯子
    如果能让页面抛出异常,说明用户已经不友好了,所以我们也没必要友好 [em012] 一般我都是抛出异常

    [回复]

  5. 2011年6月4日00:08 | #5

    @xinling
    哈哈 我说的是一些小型网站啦 那些网站在这些细节方面不会太在意 我觉得这些细节都应该注意一下,不要让用户看到异常页面,一方来说用户友好,另一方面也不会暴露敏感信息

    [回复]