sql注入中的替换技巧。

目录

1:注释的替换

2:空格替换

3:大小写混合绕过及双写绕过

4:等号的绕过

5:单双引号的绕过


1:注释的替换

        注释在sql注入中非常重要,因为会使用它来闭合我们注入的sql语句。

        当以get方式提交时使用的注释符为: #

        当以post方式提交时使用的注释符为:‘-- ’ (在url中我们需要写为 --+)

        当注释被过滤后我们可以使用数字型来进行闭合。比如: and '1' ='1       and "1"="1  等操作。 

2:空格替换

        当sql语句没有空格时就不可能完成sql注入。所以当空格被过滤后有一下几种替换空格的方式:

        (1):我们使用 /**/ 来替代。

                       比如:  union/**/select/**/1,2,3 

         (2): %0a    %0b   %0d   %a0 来替换空格

                        比如: union%0aselect%0a1,2,3      (我们需要去一个一个尝试看是否有效)

         (3):我们可以使用括号来替换空格

                        比如: updatexml(1,concat(0x7e,(select(database())),0x7e),1)#

3:大小写混合绕过及双写绕过

        当我们所需要的某个关键词被过滤后,我们可以尝试一下方法来进行绕过:

(1):大小写混合绕过

                比如:当我们的select被过滤后我们可以尝试写: union  SElecT   1,2,3#

(2):双写绕过

                比如:当我们的and被过滤后我们可以尝试写: aandnd  select 1,2,3 #

4:等号的绕过

        当我们的“=” 被过滤后我们可以使用一下的方法进行绕过:

5:单双引号的绕过

        当我们的单双引号被过滤后我们可以使用在线转化工具将我们需要写的数据转化为16进制,因为在mysql中支持16进制。当我们转化为16进制后就不需要使用单双引号了。

推荐一个在线工具:16进制转换,16进制转换文本字符串,在线16进制转换 | 在线工具 (sojson.com)

比如:

存在一个sql语句: select  1,group_concat(table_name)  from information_schema.tables where  table_schema="security"

接下来我们使用转化工具进行转化:将security转化为16进制,再代入到sql语句中。

转化后的sql: 注意需要在转化后的数字前面加上0x(0x代表16进制)

select  1,group_concat(table_name)  from information_schema.tables where  table_schema=0x7365637572697479

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值