相信大家看完上一篇之後,对於HTTP有一个基本的认识了,从这篇开始会介绍一些跟HTTP相关名字有HTTP的一些攻击。
在上一篇的HTTP基础後,我们知道了RFC定义了9种Method,接下来我们来讲讲HTTP Verb Tampering。
GET
和POST
是用来访问Web Server内容最常用的方法,现在我们知道了除了GET
和POST
之外的其他Method。在一般时候这通常不会造成甚麽问题,但如果使用的Web Server设定错误(misconfiguration),可能就可以被用於一些恶意目的,例如bypass security control、上传Web Shell等等。
PUT: 这个Method允许User在Web Server上传档案,如果滥用的话,攻击者就可以通过上传恶意档案来取的服务器权限,例如在使用php的网站中写入:
<?php echo system($_REQUEST['cmd']); ?>
就可以造成Code Execution,当然也可以很乾脆的写入php reverse shell等等,可以利用的方法很多。
虽然实务上很少使用到PUT
,但勿忘CVE-2017-12615/CVE-2017-12617(Apache Tomcat Remote Code Execution via JSP upload) XD。
CONNECT: 这个Method请求HTTP Proxy Server建立指定位置的TCP Connection的tunnel,如果被滥用的话,可以用来利用Web Server作为proxy,用於对内部机器发起攻击,这种严重程度不言而喻。
TRACE: 这个Method会将发送到Server的任何strings返回给user,让攻击者可以知道网站的某些资讯,达到Enum/Leak的效果,也可以透过TRACE进行XSS、XST攻击,steal cookies,接管帐户等等。
下面的Java EE Containers是从github抓下来再修改的
<security-constraint>
<web-resource-collection>
<web-resource-name>example</web-resource-name>
<url-pattern>/secret/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
上面设定了HTTP Servlet的Container,定义只允许admin使用GET
和POST
method拿到/secret/下的所有资源。这边的问题是可以通过其他Method取绕过这个限制取得相应的资源,例如HEAD
或是一些无意义的字串像是FOO
、ABC
、XXX
等,绕过VBAAC/设定档的安全控制,在有这种漏洞的网站中,一些无意义字串可能会被当作GET
。
IBM
在这个案例中,攻击者可以透过发送特制的请求,造成HTTP Verb Tampering影响IBM Cúram SPM来达成bypass一些安全控制。
A HTTP Verb Tampering vulnerability may impact IBM Curam Social Program Management 7.0.9 and 7.0.10. By sending a specially-crafted request, an attacker could exploit this vulnerability to bypass security access controls. IBM X-Force ID: 189156.
SAP BusinessObjects Business Intelligence
在SAP BusinessObjects Business Intelligence平台中的CMC(中央管理控制台),透过更改Method,可以造成HTTP Verb Tampering。(没有找到实际影响的程度,不过应该可以透过这个漏洞使一般使用者越级访问一些内容,但纯属猜测)
HTTP Verb Tampering is possible in SAP BusinessObjects Business Intelligence Platform, versions 4.1 and 4.2, Central Management Console (CMC) by changing request method.
通常使用的Method跟所需实现的资源执行有关,但某些Web Server可能没有严格执行的话,就会产生安全隐患,例如GET
主要用来请求网站return指定的资源,通常只用来取得资料,不会改变应用程序的状态,但若是设计不良,让GET
可以某些程度上的改变後端资料库等等的话,可能会导致CSRF、Info Leak等等。
下篇预告: HTTP Request Smuggling
<<: D3JsDay03可缩放向量图型 不用怕图片不行—SVG简介
>>: Day 3 - 部署 Home Lab 网路 - 上
上一篇内部稽核讲到 5. 监督作业:进行下列监督作业,以确定本制度之有效性、及时性及确实性: (1)...
关於 Block Editor(区块编辑器)的各类延伸有很多,我们这篇文章尽量保持简单,但您可以从...
前面有提到 TailwindCSS 在所有的 DOM 元素前面几乎都可以使用伪类变体来控制,但几乎...
昨天已经把 struct 写好了,今天来呈现资料在手机画面上,在此之前可以先上网搜寻 API 说明文...
题目 An array is monotonic if it is either monotone ...