java代码审计


定义:一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析
如何做代码审计的
手工和工具相结合的方式
工具:Fortify SCA
手工
1.敏感函数
①命令执行函数(Runtime.getRuntime()、.exec()、start()、ProcessBuilder())等
②文件上传函数(ServletFileUpload()、FileItemStream()、MultipartFile())等
③SSRF函数(一类只支持http,https协议,如HttpURLConnection、HttpClient、Request、okhttp。一类支持所有协议如URLConnection、URL。)
④CORS跨域漏洞(*设置任何域都能访问)
CORS跨域设置(response.setHeader(“Access-Control-Allow-Origin”,"*");response.setHeader(“Access-Control-Allow-Credentials”,“true”);)
⑤Jsonp劫持(*设置任何域都能访问)
jsonp跨域设置
response.setHeader(“Access-Control-Allow-Origin”,"*");
callback
⑥反序列化
readObject方法
⑦XSS漏洞
当out.print("");可控的时候,就会导致XSS漏洞。
Requests
Response
Session
⑧session失效时间问题
session.setMaxInactiveInterval();
⑨用户退出,session未销毁问题
session.invalidate(); //销毁所有的Web应用
sessionsession.removeAttribute(); //移除指定的Web应用
sessionapplication
pageContent
⑩sql注入$

2.查找可控变量,正向追踪变量传递过程(就是看这些变量会不会暴露给前端等问题,比如用户查询个人信息把id,密码等一些敏感信息直接暴露给前端)
常见的可操控变量:name、id、password、pwd、select、search等。

3. 寻找敏感功能点,通读功能点代码
①. 文件上传功能
若后端程序没有严格地限制上传文件的格式,导致可以直接上传或者存在绕过的情况,除了文件上传漏洞。
还有可能发生sql注入漏洞。因为程序员一般不会注意到对文件名进行过滤,但有需要把文件名存入到数据库内。
或者上传图片可以直接使用远程的链接,可能存在ssrf
②文件管理功能
如果程序将文件名把或者文件路径直接在参数中传递,则很有可能存在任意文件操作的漏洞。
还有可能发生xss漏洞,。程序会在页面中国输出文件名,而通常会疏忽对文件名的过滤,导致可能在数据库中存入带有尖括号等特殊 符号的文件名,最后显示在页面上的时候就会被执行。
③登录认证功能
登陆功能不是指一个登录过程,而是整个操作过程中的认证。
目前的认证方式大多是基于Cookie和Session。
如果Cookie信息没有加salt一类的东西,就有可能导致任意用户登录漏洞,只要知道用户的部分信息,即可生成认证令牌
④找回密码功能
找回密码虽然无法危害到服务器安全,但是可以重置管理员密码,也可以间接控制业务权限甚至拿到服务器权限。

4.通读全文代码
①配置文件(application.xml,yml等,pom.xml)了解这个项目是什么架构的,ssm,还是spring boot,还是微服务,pom.xml中看又没有低版本的组件有历史遗留漏洞(比如struts2,shiro,FastJson等),最高效的方法是去gitub下个检测工具(比如struts检测)
②安全过滤文件
常见命名:filter、safe、check
这类文件主要是对参数进行过滤,比较常见的是针对SQL注入和XSS过滤,还有文件路径、执行的系统命令的参数,其他则相对少见。
③函数集文件
常见命名:fuctions、common
​这些文件里面是一些公共的函数,提供给其他文件统一调用,所以大多数文件都会在文件头部包含到其他文件。
​寻找这些文件一个比较好用的技巧是打开index.php或者一些功能性文件,在头部一般都能找到
参考链接:https://blog.csdn.net/qq_51577576/article/details/121985574

补充:什么是静态测试
静态测试是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性,找出程序中存在的风险,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

posted @ 2022-07-24 20:44  lzstar-A2  阅读(864)  评论(0编辑  收藏  举报