SQL注入替换法

来源:互联网 发布:淘宝化妆品店铺起名 编辑:程序博客网 时间:2024/06/15 10:29

 SQL注入的替换法就是用一些其他的字符来代替被屏蔽掉的字符,下面给出几个常用的替换法

  1. 可以把空格替换为注释符/**/,在SQL语句遇到/**/时,mysql会将/**/替换为一个空格
  2. 同样可以用()来代替空格,下面是一个用括号替换空格的实例:
    SELECT(ID)FROM(CITY)WHERE(NAME='JINAN');
  3. 可以把等号换为LIKE也可以把LIKE换为=
  4. 用UTF-8编码来代替引号,示例:把 ("1 AND '1'='1") 换为(转换为UTF-8编码)'1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'
  5. 随机大小写,一些字符串比较函数是区分大小写的,如果在防注入模块里面忘记了tolowercase或touppercase,那么就可以通过这个绕过
  6. 16进制替换,就是把一些输入数据替换为16进制来绕过一些字符被屏蔽,这里所说的16进制就是关键字的16进制ascii码的组合,比如下面的语句是合法的:
    SELECT * FROM COUNTRY WHERE NAME=0x6368696e61;
    使用world数据库,查找国家名为china的国家,但是不能加入16进制字符串的左右是不能有单引号的
  7. 逗号替换,在某些mysql函数中是需要使用逗号的,但是如果过滤了逗号,在substr和mid函数中可以使用from xx for xx来替换,也可以使用from to,在limit 1,2 这样的形式中可以使用offset关键字来进行替换
  8. 可以使用greatest函数来代替>操作符


首发于我的个人网站: 点击打开链接
0 0
原创粉丝点击