代码审计

Java代码审计

0.配置环境是第一道坎儿 - 如何利用Maven构建项目? - 如何把项目部署到Tomcat中然后启动? - 如何反编译JAR包看源码? - 如何进行动态调试?

1.大量复现并分析已经曝出的漏洞,高质量的漏洞分析是提升自己技能的最简单、最直接的方式

  • Java代码审计注重知识的积累,建议多分析大型的开源项目漏洞,如:Struts2、Jenkins、FastJson等。
  • 学习利用链,如分析要ysoserial中的反序列化利用链、JNDI利用流程等。
  • 分析过程中多问为什么,尽力解释清楚整个漏洞的调用链,尝试动手写出自己的poc。
  • 进行大量漏洞分析时,要让自己的思路跳出过于细节的执行流程,从整体层面去思考框架是如何实现这个流程的,这个过程在框架中到底发生了什么,自己能否将执行流的每个步骤都解释清楚。

2.深入理解Java的运行机制和设计模式。

重复上述过程,量变引起质变。

经典漏洞Struts2

REF:

下面2个微信打开才能看到图片

Struts2框架接收请求后的内部执行过程(一图胜千言): Struts2框架的内部执行过程_转载

Java代码审计

PHP代码审计

Python代码审计