本博客地址:https://security.blog.csdn.net/article/details/82946120
一、引子
一个Java应用的代码审计工作应该从哪里入手,对于新手来说也许会不知所措,如果在不了解整个应用系统情况下(包括业务功能、框架使用等)盲目的直接去阅读项目中源代码,往往会迷失在代码中导致漏洞误报漏报情况,审计效率同样不高。所以在审计之前要了解应用系统主要业务逻辑,其次是了解项目的结构和项目当中的类依赖。再次才是去根据业务模块去读对应的代码,从功能去关联业务代码往往比逮着段代码就看效率高很多。
二、逆向回溯审计
逆向回溯审计针对于特定漏洞比较有效,因为大多数安全问题是由于函数使用不当造成的,比如命令注入通常会使用Runtime.getRuntime().exec(command)
执行外部的程序或者命令,另外比如SQL注入可以直接搜索查看SQL语句是否使用字符串动态拼接。
2.1、逆向挖掘SQL注入
SQL注入理论上是最容易找的,因为SQL语句的特殊性只要利用编译器快捷键搜索select、from 等关键字就能够快速找到项目下所有的SQL语句,然后根据搜索结果基本上都能够确定是否存在SQL注入。
凡是SQL语句中出现了拼SQL(如select * from admin where