SQL注入时当and、or等字符被过滤了怎么办

当常用字符被注释无法使用时,通常采取以下方法(可自行搜索sql注入绕开过滤等):

0x01字母被注释(or、and等)

1. 大小写变形

如:Or、OR、oR等

2. 改变编码

如:通过hex、urlencode、url等编码

举例:如果or被过滤时,我们可以采用url编码(其相当于把ascii编码的0x给替换成%,比如o的ascii为0x6f,url编码就

是%6f),这个时候我们可以试试%6fr,即把o换成url编码,也可以全换,也可以大小写的换,如果没被过滤就成功了,(如

果%被过滤了的话…)

【注:这个可以积极的去使用,比如测试时and被注释,使用&&替换也失败,这个时候不妨试试%26%26(&的url编码)】

3. 添加注释

如:/* */(这个不止可以应对字母被注释)

举例:某个过滤器能够过滤的字符如下——“select ”、”from ”、”limit ”等,注意这些字符最后面都有一个空格,这个时候我们就能

通过内联注释来绕过这个过滤器,如:

SELECT/**/username,password/**/FROM/**/users

【注:这个注释甚至可以穿插在关键字当中,例如被过滤了or,我们可以把order by改成o/**/rder by,参考的资料上是这么说,但本人试了没成功,不知是否依旧实用】

4. 往字符里面插入被过滤的字符(双写法)

比如or被过滤了,我们可以往里面加or,即注入:oorr,这个时候里面的or就被删去了,剩下的组成新字符,也就是or,是个很

好用的绕过方法,像这种类似的还有很多,需要我们去思考

5.利用符号形式

如:&&、||
举例:

‘ || updatexml(1,concat(0x7e,(select database()),0x7e),1)--+

0x02数字被注释(1、2等)

6. 使用浮点数

如:1.0、2.0

0x03 符号被注释(<、>等)

7. 利用函数代替

如盲注时经常用到比较,这时候要是比较符号被注释了不能用平常的方法了,所以需要用某些函数如greatest()

【greatest(n1,n2,n3,…)函数返回输入参数(n1,n2,n3,…)的最大值】、least()等,

比如语句:select * from users where id=1 and ascii(substr(database(),0,1))>64
就可以替换成:select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64

【注:当or被注释时,像order by这种含有相关字符的语句也同样无法使用,这个时候如果改变大小写也无用时,可以使用上述

的内联注释/**/,或者用别的编码形式,如果不行的话,那就只能放弃使用order by,可以尝试使用group by语句等】

转载自:https://www.jianshu.com/p/1aafa50bbcf0

  • 9
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQL注入中的or和and是两个常见的关键字,用于拼接SQL语句的条件。 当应用程序没有对用户输入进行充分的过滤和验证时,攻击者可以通过构造恶意的输入来绕过输入验证,修改原始SQL语句的逻辑,从而执行非授权的操作。 在SQL语句中,or用于连接多个条件,只要满足其中一个条件就成立;而and则要求同时满足多个条件才成立。 为了防止SQL注入攻击,可以采取以下措施: 1. 使用参数化查询或预编译语句来构建SQL语句,将用户输入作为参数传递,而不是直接拼接在SQL语句中。 2. 对用户输入进行严格的过滤和验证,确保只有合法的输入才能通过。 3. 对用户输入进行转义,将特殊字符转换为其对应的转义序列,以防止恶意输入破坏SQL语句的结构。 4. 限制数据库用户的权限,确保其只能执行必要的操作,避免对数据库的非授权访问。 总之,在编写应用程序时,需要充分考虑安全性,对用户输入进行正确的过滤和验证,以防止SQL注入攻击。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SQL注入 绕过and和or过滤](https://blog.csdn.net/m_de_g/article/details/121792949)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值