本文从现代WAF的基本原理讲起,涵盖WAF指纹识别、多种WAF绕过技术(下)-黑客接单平台

访客5年前关于黑客接单621
今日咱们来接着上一篇,讲讲WAF绕过技能的其他几个方面。 Unicode标准化 让Unicode标准化是Unicode的一个功用,用于比较看起来类似的Unicode符号。例如,符号“ª”和“ᵃ”有不同的代码,但肉眼看起来十分类似。标准化之后他们都将看起来像一个简略的'a',而且被认为是相同的。标准化答应将一些杂乱的unicode符号转换为更简略的替代符号。有一个Unicode标准化表,其间包括一切Unicode符号及其或许的标准化。运用它,你能够制造不同的有用载荷,并将它们与其他办法结合起来。尽管如此,它并不适用于一切web应用程序,而且十分依赖于运转环境。 例如,在上表中,咱们能够看到符号,能够转化为XSS进犯。 WAF或许无法了解Unicode符号,它或许底子没有了解这些技巧的规矩,机器学习也或许没用,在运用Unicode标准化的Web应用程序中找到绕过办法时,咱们不只能够替换,还能够替换有用载荷中的其他符号。 例如: <img src﹦x onerror=alert︵1)> 最近,在HackerOne的Rockstar BugBounty程序中发现了这个缝隙。没有WAF,只要严厉的用户输入过滤: hackerone.com/reports/231444 hackerone.com/reports/231389 令牌损坏程序(Token breaker) 对令牌程序的进犯企图在所谓的令牌损坏程序的协助下,进犯将恳求拆分为令牌的逻辑。令牌损坏程序是答应影响字符串元素和特定令牌之间的通讯的符号,因而能够经过签名绕过搜索。可是当运用令牌损坏程序时,恳求有必要坚持有用。下面的恳求是运用令牌损坏程序进行进犯的一个示例。 SELECT-@1,version() 其间-@是令牌损坏程序,其间有一个chear表,是经过mysql含糊测验并在libinjection中查看成果取得的。 运用RFC的功用 在HTTP/1.1协议的标准和各种恳求类型(例如multIPart/form-data)中,咱们能够找到一些与处理标头有关的风趣的东西。由于WAF开发人员一般不考虑这些问题,因而WAF或许会过错地解析恳求,并丢掉躲藏进犯向量的部分数据。WAF中的大多数问题都与多部件/表单数据的处理和鸿沟参数的特定值有关,鸿沟参数在这些恳求中指定了参数鸿沟。除此之外,服务器开发人员或许也会犯过错,而且不完全支撑标准,所以服务器的HTTP解析器中或许存在未被记载的功用。 在具有multipart / form-data的HTTP恳求中,参数鸿沟担任恳求目标中的不同参数阻隔。依据RFC的规矩,有必要在每个新POST参数前面放置一个前面指定的带有前缀“——”的鸿沟,以便服务器能够区别恳求的不同参数。 POST /vuln.php HTTP/1.1 Host: test.com Connection: close Content-Type: multipart/form-data; boundary=1049989664 Content-Length: 192 --1049989664 Content-Disposition: form-data; name="id" 287356 --1049989664-- 进犯还能够依据以下状况:服务器和WAF以不同的 *** 处理鸿沟为空的状况。依据RFC的规矩,在本例中,“——”是参数之间的鸿沟。但是,WAF或许运用不考虑这一点的解析器,因而,WAF将传递恳求,由于来自POST恳求参数的数据不会出现在解析器中。web服务器能够很轻松地解析这样的恳求,并将数据移交给后续处理。 请看以下示例: POST /vuln.php HTTP/1.1 Host: test.com Connection: close Content-Type: multipart/form-data; boundary= Content-Length: 192 -- Content-Disposition: form-data; name="id" 123' or sleep(20)# ---- 以下是一个更风趣的示例: POST /vuln.php HTTP/1.1 Host: test.com Content-Type: multipart/form-data; boundary=FIRST; Content-Type: multipart/form-data; boundary=SECOND; Content-Type: multipart/form-data; boundary=THIRD; --THIRD Content-Disposition: form-data; name=param UNION SELECT version() --THIRD-- 在上图的进犯中,咱们企图界说哪些鸿沟参数将被WAF承受,哪些参数将被web服务器承受。因而,假如它们承受不同的参数,则能够经过指定WAF看不到的鸿沟来履行进犯。这种进犯有点像HPP。 POST /vuln.php HTTP/1.1 Host: test.com Content-Type: multipart/form-data; xxxboundaryxxx=FIRST; boundary=SECOND; --FIRST Content-Disposition: form-data; name=param UNION SELECT version() --FIRST-- 此进犯依据这样的假定:WAF和web服务器对HTTP恳求的解析是不同的,也就是说,web服务器的解析器查找之一个“boundary”条目,然后查找“=”符号,之后才界说鸿沟的值。反过来,WAF解析器只查找“boundary=”条目,然后界说鸿沟的值。假如满意这些条件,WAF将无法在恳求中找到鸿沟,因而它将无法找到并剖析参数。相反,web服务器将获取恳求并处理参数。这种进犯也将以另一种 *** 作业,即web服务器[1][2][3]黑客接单网

相关文章

HTTPie:WEB开发调试东西

还在用wget和curl?试试HTTPie吧  :) HTTPie (读作aych-tee-tee-pie)是指令行方法的HTTP客户端。可经过简略的http指令,可合作语法发送恣意HTTP恳求数据,...

“神起”僵尸网络的诱捕与反击(上)

2019年5月中旬,蜜罐体系监测到了一同进犯事情,引起了咱们的留意,小伙伴们敏捷跟进分析,并经过技术手段拿下黑客操控端服务器,发现黑客运用了一款名为“神起ddos集群”的软件,操控了3000+的僵尸网...

PDO 避免SQL注入的原理

 当说到防止SQL注入的办法时,脑海中总是会想到运用PDO绑定参数的办法或许运用mysql_real_eascape_string()来处理(尽管陈旧的 mysql_XXX 这类的函数现已不主张运用)...

PHP的两个特性导致waf绕过注入

1、HPP HTTP参数污染 HTTP参数污染指的是,在URL中提交相同键值的两个参数时,服务器端一般会进行一些处理。比方Apache就要以最终一个参数为准,比方: user.php?id=111&a...

解析NanoCore犯罪软件攻击链-黑客接单平台

网络犯罪分子常常会选用多层的加密或混杂技能来躲避安全产品的检测。对加密器和封装器的运用在当今歹意软件范畴正变得越来越盛行,它们不只能为歹意代码供给所谓的“FUD”(彻底无法检测)功用,而且还能躲藏额定...

PHP弱类型安全问题总结

 前段时间做了南京邮电大学网络攻防渠道上面的标题,写了一个writeup之后,还有必要总结一下。因为做的标题都是web类型的,一切的标题都是运用PHP来写的,所以许多标题并没有调查到传统的如SQL注入...