精华内容
下载资源
问答
  • sql注入绕过
    2022-06-15 16:41:21

    一、 SQL 注入的绕过技术

    1、 大小写绕过

    如果过滤器通过关键字进行过滤并没有识别大小写 ,我们就可以使用大小写来进行绕过,因为 SQL 语句是不区分大小写的。

    原始语句

    SELECT * FROM users WHERE id='1' LIMIT 0,1

    大小写掺杂注入

    SELECT * FROM users WHERE id='1'And 1=1--+' LIMIT 0,1

    问题存在的原因是:过滤器过滤了正常的关键字,但是并没有对字符串进行处理。

    2、 注释绕过

    Less-23

    打开sqli-labs靶机

    [root@localhost ~]# cd /var/www/html/ #进入sqli-labs所在目录

    [root@localhost html]# cat sqli-labs/Less-23/index.php #查看源代码

    我们可以看到 Le

    更多相关内容
  •  SQL注入绕过技巧有很多,具体的绕过技巧需要看具体的环境,而且很多的绕过方法需要有一个实际的环境,好是你在渗透测试的过程中遇到的环境,否则如果仅仅是自己凭空想,那显然是不靠谱的。这篇文章是总结我在...
  • 深入了解SQL注入绕过waf和过滤机制
  • SQL注入绕过

    千次阅读 2022-03-24 20:37:49
    文章目录什么是绕过注释符号绕过双写绕过大小写绕过空格绕过等号绕过内联注释绕过参数污染绕过宽字节注入 什么是绕过 个人理解是系统或者安全软件为了避免攻击者篡改一些参数来获取数据,就会自动过滤一些篡改信息的...

    什么是绕过

    个人理解是系统或者安全软件为了避免攻击者篡改一些参数来获取数据,就会自动过滤一些篡改信息的关键词。但系统和软件终究是人编写出来的,攻击者们还是有各种各样的方法绕过安全点的检测来达到自己的目的。
     

    注释符号绕过

    MySQL中常见的注释符有这么几个:

    #注释内容
    – 注释内容
    /* 注释内容 */

    其中 - - 要注意跟后面的注释内容有一个空格

    (接下来的展示都用mysql命令行展示)
    实例:
    在这里插入图片描述
    在这里插入图片描述
     

    双写绕过

    经典的,例如联合查询中 union select可能都会被waf过滤掉,但是它只会过滤一次啊,那我们多输入一次就行了。
    在这里插入图片描述
    这里是没有过滤的所以会显示语法错误,实际情况如果发生过滤可以这么写。或者ununionion seleselectct 这种的都行,因为它只会过滤一次关键字。
     

    大小写绕过

    有的waf对于大小写不敏感,可以利用
    实例:
    在这里插入图片描述

     

    空格绕过

    空格可以由底下的符号替代:

    /**/
    %09、%0a、%0d、%0b等
    括号绕过空格
    +号、tab、两个空格、反引号等

    实例:
    在这里插入图片描述
    在这里插入图片描述

     

    等号绕过

    可以使用like,rlike,regexp代替=号
    也可以使用<>绕过,实际上<>等价于 ! = ,所以我们在前面再加一个 ! 就是双重否定了
    实例:
    在这里插入图片描述
    在这里插入图片描述

     

    特殊符号绕过

    and 替换为 &&
    not 替换为 !
    or 替换为 ||
    异或替换为 xor

    实例:
    在这里插入图片描述
     

    内联注释绕过

    内联注释就是把一些特有的仅在MYSQL上的语句放在 /* !..*/ 中,这样这些语句如果在其它数据库中是不会被执行,但在MYSQL中会执行。前面一篇文章有提过一嘴
    实例:
    在这里插入图片描述

     

    参数污染绕过

    提供多个parameter= value的值集来混淆绕过WAF。鉴于 http://example.com?id=1&?id=’ 或’1’=‘1’ - '在某些情况下(例如使用Apache / PHP),应用程序将仅解析最后一个(第二个) id =, waf只解析第一个id=。这似乎是一个合理的请求,但应用程序仍然接收并处理恶意输入。今天的大多数waf都不容易受到HTTP参数污染(HPP)的影响,但仍然值得一试。
    实例:
    在这里插入图片描述

     

    宽字节注入

    我们都知道在字符型注入中要先用单引号闭合下再输入sql命令,详见SQL注入闭合方式。但是如果程序中在我们输入的单引号之前加上个反斜杠比如: ’ 。这样的话这个单引号就是个字符了,意思就是斜杠与单引号的结合使得单引号转义,没有单引号闭合的作用,就起到了防护的作用。
    为了突破这个防护,我们可以使用宽字节注入的方式来进行突破,使用:

    %df ’

    当我们在单引号之前加上%df的时候,也就是输入%df ’ 这样传入到数据库中就会变成:

    %df%5c ’

    原理是在GBK编码中,%df与 \ 的转义符%5c结合会编码成一个汉字,这样就使得 ’ 逃逸了。此外 %DE%5C,%E0%5C也都是可以的。

     

    小结

    以上介绍的知识我目前掌握的一些绕过方式,其中编码(16进制编码,Unicode编码)绕过,过滤引号逗号等没有介绍。具体可以参考:
    sql注入绕过方法总结
    SQL注入9种绕过WAF方法

    展开全文
  • 网上关于SQL注入的绕过技巧有很多,最近正好空下来,想着整理下关于SQL注入绕过的一些姿势。欢迎大牛补充,下面这篇文章主要介绍了关于SQL注入绕过的一些知识点,总结的还是相对比较全面的,需要的朋友可以参考下。
  • 文章目录SQL注入绕过技巧1.绕过空格2.括号绕过空格:3.引号绕过4.逗号绕过5.比较符号(<>)绕过使用between and:6.or and xor not绕过:7.绕过注释符号8.=绕过:9.绕过union,select,where等:(1)使用注释...


    SQL注入绕过技巧

    1.绕过空格

    (注释符/* */,%a0)

    两个空格代替一个空格,用Tab代替空格,%a0=空格:

    %20 %09 %0a %0b %0c %0d %a0 %00 /**/  /*!*/
    

    最基本的绕过方法,用注释替换空格:

    /*  注释 */
    

    img

    使用浮点数:

    select * from users where id=8E0union select 1,2,3
    select * from users where id=8.0 select 1,2,3
    

    2.括号绕过空格:

    如果空格被过滤,括号没有被过滤,可以用括号绕过。

    在MySQL中,括号是用来包围子查询的。因此,任何可以计算出结果的语句,都可以用括号包围起来。而括号的两端,可以没有多余的空格。

    例如:

    select(user())from dual where(1=1)and(2=2)
    

    这种过滤方法常常用于time based盲注,例如:

    ?id=1%27and(sleep(ascii(mid(database()from(1)for(1)))=109))%23
    

    (from for属于逗号绕过下面会有)

    上面的方法既没有逗号也没有空格。猜解database()第一个字符ascii码是否为109,若是则加载延时。

    3.引号绕过

    使用十六进制

    会使用到引号的地方一般是在最后的where子句中。如下面的一条sql语句,这条语句就是一个简单的用来查选得到users表中所有字段的一条语句:

    select column_name  from information_schema.tables where table_name="users"
    

    这个时候如果引号被过滤了,那么上面的where子句就无法使用了。那么遇到这样的问题就要使用十六进制来处理这个问题了。
    users的十六进制的字符串是7573657273。那么最后的sql语句就变为了:

    select column_name  from information_schema.tables where table_name=0x7573657273
    

    4.逗号绕过

    使用from或者offset

    在使用盲注的时候,需要使用到substr(),mid(),limit。这些子句方法都需要使用到逗号。对于substr()和mid()这两个方法可以使用from to的方式来解决:

    select substr(database() from 1 for 1);
    select mid(database() from 1 for 1);
    

    使用join:

    union select 1,2     #等价于
    union select * from (select 1)a join (select 2)b
    

    使用like:

    select ascii(mid(user(),1,1))=80   #等价于
    select user() like 'r%'
    

    对于limit可以使用offset来绕过:

    select * from news limit 0,1
    # 等价于下面这条SQL语句
    select * from news limit 1 offset 0
    

    5.比较符号(<>)绕过

    (过滤了<>:sqlmap盲注经常使用<>,使用between的脚本):

    使用greatest()、least():(前者返回最大值,后者返回最小值)

    同样是在使用盲注的时候,在使用二分查找的时候需要使用到比较操作符来进行查找。如果无法使用比较操作符,那么就需要使用到greatest来进行绕过了。
      最常见的一个盲注的sql语句:

    select * from users where id=1 and ascii(substr(database(),0,1))>64
    

    此时如果比较操作符被过滤,上面的盲注语句则无法使用,那么就可以使用greatest来代替比较操作符了。greatest(n1,n2,n3,…)函数返回输入参数(n1,n2,n3,…)的最大值。
      那么上面的这条sql语句可以使用greatest变为如下的子句:

    select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64
    

    使用between and:

    between a and b:

    between 1 and 1; 等价于 =1

    6.or and xor not绕过:

    and=&&  or=||   xor=|   not=!
    

    7.绕过注释符号

    (#,–(后面跟一个空格))过滤:

    id=1' union select 1,2,3||'1
    

    最后的or '1闭合查询语句的最后的单引号,或者:

    id=1' union select 1,2,'3
    

    8.=绕过:

    使用like 、rlike 、regexp 或者 使用< 或者 >

    9.绕过union,select,where等:

    (1)使用注释符绕过:

    常用注释符:

    //,-- , /**/, #, --+, -- -, ;,%00,--a
    

    用法:

    U/**/ NION /**/ SE/**/ LECT /**/user,pwd from user
    

    (2)使用大小写绕过:

    id=-1'UnIoN/**/SeLeCT
    

    (3)内联注释绕过:

    id=-1'/*!UnIoN*/ SeLeCT 1,2,concat(/*!table_name*/) FrOM /*information_schema*/.tables /*!WHERE *//*!TaBlE_ScHeMa*/ like database()#
    

    (4) 双关键字绕过(若删除掉第一个匹配的union就能绕过):

    id=-1'UNIunionONSeLselectECT1,2,3–-
    

    10.通用绕过(编码):

    如URLEncode编码,ASCII,HEX,unicode编码绕过:

    or 1=1即%6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。
    

    11.等价函数绕过:

    hex()、bin() ==> ascii()
    
    sleep() ==>benchmark()
    
    concat_ws()==>group_concat()
    
    mid()、substr() ==> substring()
    
    @@user ==> user()
    
    @@datadir ==> datadir()
    
    举例:substring()和substr()无法使用时:?id=1+and+ascii(lower(mid((select+pwd+from+users+limit+1,1),1,1)))=74 
    
    或者:
    substr((select 'password'),1,1) = 0x70
    strcmp(left('password',1), 0x69) = 1
    strcmp(left('password',1), 0x70) = 0
    strcmp(left('password',1), 0x71) = -1
    

    12.宽字节注入:

    过滤 ’ 的时候往往利用的思路是将 ’ 转换为 ’ 。

    在 mysql 中使用 GBK 编码的时候,会认为两个字符为一个汉字,一般有两种思路:

    (1)%df 吃掉 \ 具体的方法是 urlencode(’) = %5c%27,我们在 %5c%27 前面添加 %df ,形成 %df%5c%27 ,而 mysql 在 GBK 编码方式的时候会将两个字节当做一个汉字,%df%5c 就是一个汉字,%27 作为一个单独的(’)符号在外面:

    id=-1%df%27union select 1,user(),3--+
    

    (2)将 ’ 中的 \ 过滤掉,例如可以构造 %**%5c%5c%27 ,后面的 %5c 会被前面的 %5c 注释掉。

    一般产生宽字节注入的PHP函数:

    1.replace():过滤 ’ \ ,将 ’ 转化为 ’ ,将 \ 转为 \,将 " 转为 " 。用思路一。

    2.addslaches():返回在预定义字符之前添加反斜杠(\)的字符串。预定义字符:’ , " , \ 。用思路一

    (防御此漏洞,要将 mysql_query 设置为 binary 的方式)

    3.mysql_real_escape_string():转义下列字符:

    \x00     \n     \r     \     '     "     \x1a
    

    (防御,将mysql设置为gbk即可)

    PCRE绕过:

    union/*’+'a’1000001+’/select

    展开全文
  • 使用SQL注入绕过认证 使用SQL注入绕过认证 1、SQL注入分类 SQL注入类型 数字型注入 字符型注入 其他类型注入 使用SQL注入绕过认证 1、SQL注入分类 数字型注入 许多网页链接有类似 /users.php?id=1 的结构,基于此种...
  • sql注入绕过方法

    千次阅读 2021-08-26 14:54:42
    有时候,在我们执行sql注入过程中,代码对有些关键词进行过滤和替换,这时候我们可以利用更换大小写方式绕过,sql语句可以识别大小写。 执行下来效果还是一样的。 二、双写绕过 在我们进行注入时候,有时候会遇到把...

    一、大小写绕过

    有时候,在我们执行sql注入过程中,代码对有些关键词进行过滤和替换,这时候我们可以利用更换大小写方式绕过,sql语句可以识别大小写。

    在这里插入图片描述

    执行下来效果还是一样的。

    二、双写绕过

    在我们进行注入时候,有时候会遇到把关键词进行直接替换为空或者删除的注入,这时候,相当于你的注入语句就直接失效了,这个时候我们就可以使用双写绕过。

    在这里插入图片描述

    三、编码绕过

    使用URL编码对输入语句进行加密,然后服务器端会对其进行解密。

    在这里插入图片描述

    在这里插入图片描述

    四、内联注释绕过

    在mysql中,内联注释绕过的语句会被当做sql语句执行。

    在这里插入图片描述

    替换位置也可以使用

    在这里插入图片描述

    文章内容来源:https://www.bilibili.com/video/BV1Q54y1D7VV?p=9&spm_id_from=pageDriver

    文章若有冒犯,请及时告知!这是我花费时间整理而来的,若有问题请及时告知。喜欢就点个赞支持一波吧Thanks♪(・ω・)ノ

    展开全文
  • 黑客常用SQL注入绕过技术总结,黑客们原来是这么玩的!冰河吐血整理,建议收藏!!
  • 实验一:使用SQL注入绕过认证 一、实验目的 使用SQL注入绕过认证 熟悉掌握常见的绕过方式 二、实验内容 本实验使用SQL注入绕过认证,其中包含注释符绕过、大小写绕过、特殊编码绕过、内联注释绕过等方式。 三、实验...
  • 支持手动灵活的进行SQL注入绕过,可自定义进行字符替换等绕过注入防护。本工具为渗透测试人员、信息安全工程师等掌握SQL注入技能的人员设计,需要使用人员对SQL注入有一定了解。 工具特点: 1.支持任意地点出现的...
  • web安全之SQL注入绕过技术(一)

    千次阅读 2022-02-23 19:54:55
    学习掌握SQL注入绕过技术,从而更好的用于渗透测试中。
  • ctf攻防渗透-SQL注入-SQL注入绕过

    千次阅读 2021-12-01 14:02:30
    常规绕过 ⼤⼩写绕过 SeLEcT 双写绕过 selselectect 字符串绕过 16进制 函数使⽤: char(65) 空格绕过: 1、使⽤/**/,/1/,%0a,%0d替换 2、使⽤括号: union(select(xxx)from(xxx)where(xxx)=xxx) 3、使用反引号:...
  • Sql注入绕过

    千次阅读 2020-08-01 14:21:38
    SQL注入绕过 一 双写绕过 1.过滤判断 xxx.com?id=1 访问?id=1and1=1 页面报错 1=1,发现and被过滤,这时候尝试使用双写的方式绕过,如aanndd 1=1,当and被过滤后,aanndd变成了and,所以这时传输数据库的语句是 and ...
  • SQL注入绕过的姿势

    2022-04-11 11:04:01
    1.注释符绕过 常用的注释符有: 1)-- 注释内容 2)# 注释内容 3)/注释内容/ eg:union select 1,2# union select 1,2 --+ 构造闭合 ’ union select 1,2’ 2.大小写绕过 常用于 waf的正则对大小写不敏感的情况。...
  • SQL注入绕过select过滤

    千次阅读 2022-03-25 11:07:01
    alter更改表名,利用源代码中的select进行查询 alter语句: ALTER TABLE 表名 CHANGE COLUMN 列名 【新】列名 ALTER TABLE 表名字 CHANGE COLUMN 列名 新列名 属性 ALTER TABLE 表名 RENAME TO 表新名 以上SQL语句...
  • 宝塔面板的sql注入绕过

    千次阅读 2021-03-24 17:02:36
    一次宝塔sql注入绕过宝塔防护sql注入尝试联合查询的尝试布尔盲注尝试真假盲注运用 宝塔防护 在一次挖cvnd漏洞的时候,遇到了宝塔面板的防护,此waf屏蔽了传统的注释符“–+”、"#"、 “/*” , union select 做了...
  • sql注入绕过安全狗4.0

    千次阅读 2022-02-07 21:22:18
    绕过关键字主要思路3.1绕过连体关键字思路3.2绕过单个关键字思路4.以sqli-labs(Less-1)为例,绕过安全狗4.1拦截order by4.2拦截union select4.3拦截database()4.4拦截from4.5拦截and4.6查看数据库数据5.面向安全狗...
  • WAF - SQL注入绕过宝塔 靶场实战

    千次阅读 2021-05-29 17:34:53
    实验介绍 宝塔面板是广东堡塔安全技术有限公司研发的服务器管理工具,是一家专门从事服务器相关软件及服务...宝塔面板拥有网站的防护功能,可以防止sql注入,挂马,cc攻击等网站入侵的功能 实验目的 1.掌握s...
  • SQL 注入绕过(五)

    2022-06-27 18:07:44
    2、实操 三、application/json 或者 text/xml 绕过 1、原理分析 有些程序是 json 提交参数,程序也是 json 接收,再拼接到 SQL 执行。 json 格式通常不会被拦截。所以可以绕过 waf。 text/xml 也不会被拦截。 四、...
  • IPS眼中的——SQL注入绕过与反绕过

    千次阅读 2021-11-08 19:04:22
    浮点数绕过绕过IDP角度分析4. NULL值绕过绕过IDP角度分析5. 引号绕过6. HEX绕过7. 添加库名绕过8. 去重复绕过绕过IDP角度分析9. 反引号绕过10. 脚本语言特性绕过绕过IDP角度分析11. substr 截取字符串⭐绕过IDP...
  • web安全之SQL注入绕过技术(四)

    千次阅读 2022-02-26 19:51:20
    学习掌握SQL注入绕过技术原理及使用方法,更好的用于日常的渗透测试中。
  • SQL注入绕过WAF方法使用

    千次阅读 2022-02-19 19:04:58
    文章推荐【SQL注入绕过WAF】 文章目录WAF介绍WAF检测机制常见的绕过方法【1、4、5、7较常用】 WAF介绍 看图识WAF Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF...
  • sql注入绕过方法总结

    万次阅读 多人点赞 2018-10-10 12:43:19
    sql注入的原因,表面上说是因为拼接字符串,构成sql语句,没有使用 sql语句预编译,绑定变量;但是更深层次的原因是,数据库将用户输入的字符串,当成了 “sql语句” 来执行。 简而言之:用户输入的数据变成了代码...
  • 1.注释符绕过 2.大小写绕过 3.内联注释绕过 4.双写关键字绕过 5.特殊编码绕过 6.空格过滤绕过 7.过滤or and xor(异或)not 绕过 8.过滤等号=绕过 9.过滤大小于号绕过 10过滤引号绕过 11.过滤逗号绕过 12....
  • sql注入绕过技术1

    2022-08-03 19:58:30
    2.十六进制编码 3.Unicode编码 1.普通注释 2.内联注释 1.函数或变量 2.符号 3.生僻函数 1.使用反引号 ,例如select version
  • SQL注入-9种绕过web应用程序防火墙的方式,属于比较基础的,可以学习参考
  • SQL注入 绕过and和or过滤

    千次阅读 2021-12-08 15:41:05
    SQL注入 绕过and和or过滤 1.基础知识介绍 1.MySQL中的大小写不敏感,大写与小写一样。 2.MySQL中的十六进制与URL编码 3.符号和关键字替换and – &&、or–|| 4.内联注释与多行注释 /*! 内联注释*/ /*多行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,177
精华内容 10,870
关键字:

sql注入绕过