Web笔记(十八)jsp常见漏洞利用

这个系列是整理学习安全的笔记,包括Web和PWN的一些知识。本章是jsp两个常见漏洞类型的学习,只记录了一点皮毛,学习如何使用工具去利用,没有深入理论研究漏洞原理。

Posted by K4ys0n on December 20, 2020

0x00 jsp常见漏洞

  • struts2漏洞
  • java反序列化漏洞

0x01 struts2漏洞

1. 简介

Struts是Apache基金会Jakarta项目组的一个开源项目,Struts通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

目前,Struts广泛应用于大型互联网企业、政府、金融机构等网站建设,并作为网站开发的底层模板使用,是应用最广泛的Web应要框架之一。

2. 漏洞挖掘

  • 单个目标站点进行测试

一般存在:登录、注册、留言等地方

  • 工具爬行(爬取某个站点带有.action的文件或链接)
  • 找到存在漏洞地址
xx.action
  • 用相关工具进行测试即可。
    • Struts2漏洞检查工具2018版.exe
    • K8_Struts2_EXP.exe
    • https://github.com/HatBoy/Struts2-Scan

3. 批量查找利用

  • url采集相关关键字
  • 批量探测及利用

0x02 java反序列化漏洞

1. 简介

2015年的1月28日,Gabriel Lawrence(@gebl)和Chris Frohoff(@frohoff)在AppSecCali上给出了一个报告,报告中介绍了Java反序列化漏洞可以利用Apache Commons Collections这个常用的Java库来实现任意代码执行,当时并没有引起太大的关注。

2015年11月6日,FoxGlove Security安全团队利用Java反序列化漏洞,来攻击最新版的WebLogic、WebSphere、JBoss、Jenkins、OpenNMS这些大名鼎鼎的Java应用,实现远程代码执行。

序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。

Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,类ObjectInputStream类的writeObject()方法可以实现序列化,类ObjectInputStream类的readObject()方法用于反序列化。

2. 测试工具

Java反序列化终极测试工具(DeserializeExploit.jar)