在我的宽带即将到期的最后一天下午,我想与其什么都不做,不如挖挖漏洞呀。
我登陆了我的bugcrowd账户,并开始思考:
我找到了一个私人项目****(不能透露他的名字,我们暂且称之为Redacted.com)。测试这个项目的人非常之少。
所以我对网站进行了信息收集,找到了一个简单却优雅的登陆页面。通过Wappalyzer我们只能发现它使用了javascript框架:Prototype 1.6.1
这让我想起了jboss ......(我也不知道为什么)
同时,我也注册了账户,但必须等待管理员的审核。因此我使用Burp进一步测试登录过程,并在请求中发现了如下数据:
<input type ="hidden"name ="javax.faces.ViewState"
id ="javax.faces.ViewState"value ="rO0ABXVyABNbTGp
hdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJwdAAML
2xvZ2luLnhodG1s ............<snipt>
"autocomplete ="off"/>
如果你截取的数据包中包含以下数据,那可能意味着数据是在Java反序列化流发送的:
Hex中的"AC ED 00 05"
Base64中的"rO0"
Content-type='application/x-java-serialized-object
好吧,这打消了我的怀疑,因为这个网站使用了Java Server Faces(JSF) ,而我正在:
下一步是测试隐匿在base64中编码的值,解码之后我发现了没有加密的序列化Java值。
使用Jexboss工具测试一下:
最后我得到了一个Shell,并获得了1500美金的奖励。