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)