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

访客5年前关于黑客接单680
今日咱们来接着上一篇,讲讲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]黑客接单网

相关文章

开发一个基于Dalvik字节码的相似性检测引擎,比较同一款Android应用程序的不同版本之

上文咱们说过,《针对Dalvik字节码的类似性检测引擎,比较同一款Android运用程序的不同版别之间的代码差异》这篇文章计区分两个部分来解说,上文只介绍了怎么运用Quarkslab公司开发的diff...

SP eric靶机通关攻略-黑客接单平台

咱们好,今日给咱们带来的靶机是SP eric,这个靶机有两个flag,咱们的方针便是把它们都找出来,flag的方位现已供给,如下: · /root/flag.txt · /root/eric/flag...

对DOTNET(.NET)中的歹意长途拜访进程进行剖析(下)

上一篇说到代码会有许多重复,由于它在每个if句子(共有五个if句子,会在下篇讲到)中都会调用一个函数。但是,细节却略有不同,其间给定的办法称号和函数的参数都会显现函数的内容。 第一个if句子在程序会集...

反击爬虫,前端工程师的脑洞能够有多大?

关于一张网页,咱们往往期望它是结构杰出,内容明晰的,这样搜索引擎才干精确地认知它。 而反过来,又有一些情形,咱们不期望内容能被容易获取,比方说电商网站的交易额,教育网站的标题等。由于这些内容,往往是...

根据Session的身份盗取

一、Session是什么 暗码与证书等认证手法,一般用于登录进程。用户登录之后,服务器通常会树立一个新的Session保存用户的状况和相关信息,用以盯梢用户的状况。每个Session对应一个标识符Se...

CTF标题实战:2019-Hgame-Web-Week4

前语 最近使用空余时刻做了一下Hgame,以下是部分web题题解。 happyPython 信息收集 发现是flask,顺手测验一下。 http://118.25.18.223:3001/{{1+1}...