1、HPP HTTP参数污染
HTTP参数污染指的是,在URL中提交相同键值的两个参数时,服务器端一般会进行一些处理。比如Apache就要以最后一个参数为准,比如:
user.php?id=111&id=222
如果输出$_GET数组,则id的值只会取222,即URL上提交的多余值覆盖了前一个值。
2、一个CTF题目
http://drops.wooyun.org/tips/17248
关于注入的waf绕过,注入点为:
$sql="select * from user where id=".$_REQUEST["id"].";
可以看到了REQUEST进行传递,并且存在如下的waf代码:
functionwaf($str) { if(stripos($str,"select")!==false) die("Be a good person!"); if(stripos($str,"union")!==false) die("Be a good person!"); ...... } functionwafArr($arr) { foreach($arras$k=> $v) { waf($k); waf($v); } } wafArr($_GET); wafArr($_POST); wafArr($_COOKIE); wafArr($_SESSION); functionstripStr($str) { if(get_magic_quotes_gpc()) $str= stripslashes($str); returnaddslashes(htmlspecialchars($str, ENT_QUOTES, 'UTF-8')); } $uri= explode("?",$_SERVER['REQUEST_URI']); if(isset($uri[1])) { $parameter= explode("&",$uri[1]); foreach($parameteras$k=> $v) { $v1= explode("=",$v); if(isset($v1[1])) { $_REQUEST[$v1[0]] = stripStr($v1[1]); } } } functionstripArr($arr) { $new_arr= array(); foreach($arras$k=> $v) { $new_arr[stripStr($k)] = stripStr($v); } return$new_arr; } $_GET=stripArr($_GET); $_POST=stripArr($_POST); $_COOKIE=stripArr($_COOKIE); $_SESSION=stripArr($_SESSION);
这里使用了waf函数分别对GET POST SESSION COOKIE数据进行过滤,并且对这些全局数组进行转义。
值得注意的是,这里的$_REQUEST是代码中重新根据$_SERVER[‘REQUEST_URI’]进行拼接,在拼接过程中将参数值进行转义操作。
(1)思路1 使用HPP特性
看似不太可能存在注入,但是使用HPP可以实现。
示例代码:
user.php?id=0 or 1&id%00=1 user.php?id=0 or 1&%20id=1 user.php?id=0 or 1?&id=1测试代码:
相关推荐
- Content-Length问题:过大长度的数据包可能导致WAF绕过。 - 解码较弱:对于复杂的编码格式,WAF可能无法有效识别。 - **代理模式**: - 高并发流量:通过发送大量并发请求,可能会迫使WAF进入旁路模式。 #### ...
"过waf免杀大马最新版.zip"这个压缩包文件的标题暗示了它包含了一些可能被用于绕过WAF的Web后门程序,即所谓的"大马"(Webshell)。 1. **Webshell**:Webshell是黑客入侵服务器后留下的一个后门,通常是一个小的...
3. **堆叠注入**:在一次请求中注入多条SQL语句,通常用于批量执行操作或绕过某些安全措施。 4. **联合查询注入**:利用已知的两个表之间的联合查询,获取未授权的数据。 5. **自定义函数注入**:如果应用程序允许...
应对SQL注入的解决方案分为两个方面:检测与防御。在检测方面,需要了解如何发现和确认SQL注入点,以及如何自动化地发现注入点。在防御方面,则需要掌握代码层面和平台层面的防御措施。 自动化发现SQL注入点的方法...
这种方法有一定的局限性,因为它依赖于关键字的匹配,高级的SQL注入技术可能绕过这种简单的检测方式。 ### 总结 总结来说,PHP SQL防注入代码集合提供了几种防御手段,从对输入的预处理转义到使用正则表达式进行...
9. **Web应用防火墙(WAF)绕过**:了解如何识别和绕过Web应用防火墙,这些防火墙通常用于阻止SQL注入攻击。 10. **自动化工具**:熟悉使用自动化工具,如Burp Suite或SQLMap,它们可以帮助检测和利用SQL注入漏洞。...
5. **UNION查询注入**:利用UNION操作符合并两个或多个SELECT语句的结果集。 三、防御SQL注入的策略 1. **参数化查询/预编译语句**:使用参数化查询,将用户输入的数据与SQL命令分开,避免了直接拼接。 2. **输入...
Sqlmap 通过 Tamper 脚本来绕过 WAF 等防御措施,可以在 tamper 文件夹下找到所有 Sqlmap 自带的 Tamper 脚本。例如,使用以下命令可以设置 Tamper 脚本: `sqlmap.py -u ...
网上关于安全狗的sql绕过研究,大多数是fuzz绕过的帖子,fuzz方法常常使用注释绕过,涉及到数据库特性,而且广泛用于注释语法的星号(*)可能会被网站自带的防恶意代码模块拦截了,在实践中体验不好。太多fuzz过waf...
总结,这个事件展示了如何在面临WAF和函数禁用的情况下,通过编码和`php://filter`伪协议绕过防护措施,执行恶意代码。对于开发者和运维人员来说,了解这些技巧有助于增强系统的安全性,及时发现并修复安全漏洞。
【标签】:“php检测”和“Phpmyadmin”这两个标签共同强调了该主题的重点,即在PHP环境中,特别关注于Phpmyadmin的安全性。PHP是一种流行的服务器端脚本语言,常用于开发Web应用程序,而Phpmyadmin则是一个用PHP...
分析这个文件可以让我们了解Webshell的各种技巧和手法,例如如何隐蔽地植入Webshell,如何通过HTTP请求触发执行命令,以及如何绕过安全防护措施等。 为了防御Webshell攻击,我们需要掌握以下几点: 1. **代码审计*...
5. **绕过WAF策略**: 面对WAF过滤,可以尝试使用各种编码方式(如URL编码、十六进制编码等)或者特殊字符来规避规则。同时,可以尝试不同版本的SQL语法,因为不同版本的MySQL可能对某些函数或关键字有不同的处理...
- 系统命令注入攻击是指攻击者通过输入特殊字符或系统命令,绕过应用过滤,导致操作系统执行恶意命令。 7. Debian镜像文件: - Debian镜像文件包含了特定的账户信息和系统配置。 - 镜像文件中的Linux系统账户...
比如SQLmap的tamper脚本编写,可以在自动化SQL注入中绕过WAF(Web应用防火墙)。 11. 安全奇淫怪招:这部分可能包括一些非主流或者高级的渗透技巧和思维,用于提高挖掘和利用漏洞的能力。 教程中还包括了下载链接...
XXE(XML External Entity)漏洞,全称为XML外部实体注入,是针对使用XML解析器的应用程序的一种安全漏洞。XML是一种标记语言,常用于数据交换,而外部实体是XML文档的一部分,允许引用外部资源,如文件系统、网络...
- **原理**:利用MySQL的GBK编码特性,构造特殊字符序列绕过WAF检测。 - **利用方法**:通过构造包含特定ASCII码值的字符串,使其被视为有效的宽字符,从而实现注入攻击。 #### 九、CRLF注入 - **原理**:通过向...