之前碰到过好几次Struts2,还都是016,项目、众测都遇到过,每次都只是证明了一下存在,由于waf的存在,没有深入去利用,这里简单的记录下。0x01背景xray或者Struts2漏扫可以扫到网站存在Struts2漏洞但是执行命令会发现直接ConnectionReset,很明显是被waf拦截了0x02探究waf规则一个一个删除关键字,发现拦截的关键字有三个:Runtime、dispatcherRuntime很熟悉,执行命令一般都用这个,拦截了这个关键字,执行命令还是比较困难的dispatcher比较陌生,查了资料以后发现是读取Struts2的请求对象中的关键字getRealPath字面意思,
之前碰到过好几次Struts2,还都是016,项目、众测都遇到过,每次都只是证明了一下存在,由于waf的存在,没有深入去利用,这里简单的记录下。0x01背景xray或者Struts2漏扫可以扫到网站存在Struts2漏洞但是执行命令会发现直接ConnectionReset,很明显是被waf拦截了0x02探究waf规则一个一个删除关键字,发现拦截的关键字有三个:Runtime、dispatcherRuntime很熟悉,执行命令一般都用这个,拦截了这个关键字,执行命令还是比较困难的dispatcher比较陌生,查了资料以后发现是读取Struts2的请求对象中的关键字getRealPath字面意思,
续上之前一个flag:明文传,明文响应;密文传,密文响应0x01背景当数据包里都是密文,我们无从下手;就算是获得了加解密的一些关键信息,能解密出来,但是每个数据包我们都需要慢慢解密,请求包需要解密,响应包也需要解密,比较麻烦,所以它——autoDecoder来了。其实取auto这个名字并不是真正的auto,加解密算法还是需要自己去逆出来的,只是相对于数据包里的密文来说,可以算是半自动。0x02优点明文传,明文响应;密文传,密文响应,不影响原本通讯包的基础上,增加一个bp扩展页面查看明文信息。自定义加解密的接口,当存在复杂数据加密的时候,可以自行编写python代码对接口进行加解密,自定义需要加
续上之前一个flag:明文传,明文响应;密文传,密文响应0x01背景当数据包里都是密文,我们无从下手;就算是获得了加解密的一些关键信息,能解密出来,但是每个数据包我们都需要慢慢解密,请求包需要解密,响应包也需要解密,比较麻烦,所以它——autoDecoder来了。其实取auto这个名字并不是真正的auto,加解密算法还是需要自己去逆出来的,只是相对于数据包里的密文来说,可以算是半自动。0x02优点明文传,明文响应;密文传,密文响应,不影响原本通讯包的基础上,增加一个bp扩展页面查看明文信息。自定义加解密的接口,当存在复杂数据加密的时候,可以自行编写python代码对接口进行加解密,自定义需要加