手工sql注入常用sql语句绕过
时间: 2025-01-04 09:12:05 浏览: 60
### 手工SQL注入绕过安全措施的常用技巧
#### 使用特殊字符和编码混淆WAF检测
某些Web应用防火墙(WAF)可能无法正确解析特定模式下的输入,从而允许恶意查询通过。例如,在MySQL环境中,`%20union%20a11%23%0a%20select%201,2,3%23`这样的URL编码可以用来规避基本的过滤机制[^1]。
```sql
http://example.com/vuln.php?id=1 UNION ALL SELECT NULL,NULL,'<script>alert(1)</script>' --
```
此代码片段展示了如何利用UNION操作符来附加额外的选择语句,并且使用注释符号(`--`)结束原始查询以确保后续部分不会引起语法错误。
#### 利用路径中的关键词触发白名单规则
当目标站点配置有基于URL路径的安全策略时,攻击者可以通过构造特殊的请求地址使这些防护失效。比如向URI中加入像`/admin/`, `/manage/`之类的子串可能会让WAF认为这是合法访问而放行[^2]:
```plaintext
http://targetsite/path/to/script?param=value&fakepath=admin/
```
上述链接里的`fakepath=admin/`参数并没有实际作用于应用程序逻辑处理过程之中;相反地,它是为了迎合WAF内部预设条件所设计出来的欺骗手段之一。
#### 替代关键字实现相同功能
为了避免被简单的字符串匹配型防御工具拦截,还可以尝试替换标准SQL命令的关键字形式。例如将`SELECT`变为`SeLeCt`或采用其他大小写组合方式书写,甚至借助数据库特有的函数特性达到目的。
```sql
http://vulnerable-site/search?q=test'/**/or/**/'1'%3d'1
```
这里采用了多层嵌套注释的方式(即`/**/`),使得一些较为基础版本的WAF难以有效识别并阻止该类型的注入行为。
阅读全文
相关推荐

















