当前位置:网站首页 > Java基础 > 正文

java 审计教程



首先,本文不是技术文章,主要给出大家java代码审计学习方向的资料、资源推荐,如何从小白一点一点成长。因为最近好多人私信我,怎么去学java代码审计,这里尽量把小白刚入门存在的问题给解答出来,没有考虑到的,可以评论区讨论。这也算是我的成长之路吧。

首先,对于没有代码审计经验的,可以先从php代码审计入手,了解php语言特性,既然都在t00ls混了,大家肯定都会利用web常见漏洞:参考链接1,有了这个基础之后,可以尝试挖掘一些CMS或者框架的漏洞,php了解全面了,就可以从java入手,作为一个合格的安全工程师,代码审计应该是每个人都需要掌握的。


1、java环境搭建,很多人即使有了java基础,在java 调试环境上还是不了解,这里极力推荐用IDEA作为IDE,了解一下IDEA快捷键有哪些,总结一下我用的最多快捷键:

 
   

知道IDEA怎么使用时候,就要学debug本地调试和远程调试,目前审一些cms、框架需要本地调试漏洞,本地调试有些CMS是maven开发的导入到IDEA就能运行,一般CMS怎么本地调试都有文档。一些web服务器、中间件需要远程调试,比如weblogic、tomcat、conconfluence和jboss,远程调试参考这篇文章。


2、java基础学习,推荐去慕课网上学习,这里比较重要的把java反射机制、JAVA动态代理机制 、java设计模式多花点功夫,下面给出我之前学的视频:
Alt text


3、java框架学习 因为只有有正向开发的基础,才能审计基于java的CMS,我这里主要看了Struts2和SpringMVC的资料,知道了java web是怎么开发的,后面又学习了mybatis和Hibernate ORM框架,紧接着就是学习SSH和SSM是如何整合的。
Alt text


4、java CMS代码审计,有了正向开发基础后,有php审计的经验,在学习点java安全的trick,审计这些CMS就不是难事了,在渗透过程中,遇到源码泄露,自己也有能力去挖掘,下面给出我之前看过的案例分享。
CMS审计文章1
CMS审计文章2
CMS审计文章3
CMS审计文章4
javasec项目
极力推荐园长写的文章
orich1师傅的文章
大家也可看看看jkgh006写的文章,还有凌天实验室最近一直更java审计的文章。






















上面讲的大部分都是初级的知识,漏洞类型跟常见的web漏洞一样了。下面可能涉及weblogic、spring、fastjson、jackson、solr、jboss、tomcat、struts2....这些web服务器、中间件、框架、类库的安全,这些大型的框架首先要确定漏洞类型有哪些,我简单总结一下:1、反序列化漏洞。2、表达式注入。3、JNDI注入。4、XXE、SSRF。5、协议漏洞(tomcat ajp、jmx协议等。6、逻辑漏洞(框架的一些目录变量、文件上传、任意文件删除、SSTI等)。了解完漏洞类型,要知道这些大的服务器代码量是很大的,前面基础中的设计模式的知识就体现出来了,所以要把前面基础打好。


这里进阶的重头戏来了,java反序列化。java反序列化,推荐学习路线,首先我是从ysoserial简单的gadget看起的,新手可以看看下面我圈出来的gadget是这么构造出来的,自己debug一下,目前网上都有很多文章都有POC,这里就不给出了。Alt text新手尤其不建议直接研究JDK7u21,底层jdk的gadget,里面涉及到的知识量太大了,以后一点点逐步的把ysoserial中的gadget都搞懂,还有marshalse的gadget,还有提醒一下反序列化不只是有RCE。向反序列化后的Fileupload(FileUpload1 gadgets)、xxe都是有可能的。
进阶我简单分为下面三个阶段,最简单的就是复现漏洞,有已知的POC,去理解漏洞成因,去debug一下。

最后,嘱咐大家纸上得来终觉浅,所有案例都要调试一遍,整就牛,OVER!

版权声明


相关文章:

  • java后端技术图教程2025-10-18 11:34:03
  • java web工程 开发教程2025-10-18 11:34:03
  • 继承java教程2025-10-18 11:34:03
  • 不懂java学习linux教程2025-10-18 11:34:03
  • java窗体开发教程2025-10-18 11:34:03
  • java单链手写教程2025-10-18 11:34:03
  • 哪有java教程2025-10-18 11:34:03
  • JAVA全套教程2025-10-18 11:34:03
  • java教程2242025-10-18 11:34:03
  • java web 应用教程2025-10-18 11:34:03