代码审计小tips(一)
代码审计的源码获取
-
通过fofa进行指纹识别提取关键指纹
-
将获取到的关键信息去github和gitee进行获取
-
源码网站如站长之家,zuidaima.com,bbs52jscn.com
-
拖源码,获取目标权限拖源码
-
同指纹站点目录扫描
代码审计工具
-
SpotBugs
-
fortify scan
代码审计流程
访问流程(根据各个流程可能出现的漏洞针对性审计)
首先如果要进行代码审计那就还是要先理解下web访问流程
-
web前端访问(参数传入)
-
filter--->servlet---->controller(参数控制,过滤)
-
service(业务功能处理调用)
-
dao (调用底层jdbc 持久化)
第三方依赖 如pom.xml中引入的依赖 去看网上是否有已出现的漏洞进行比对poc测试。
代码审计方法
- 如下对关键字全局查找溯源,最常用的方式
- 密码硬编码、
Password、pass、jdbc - 密码明文存储
- xss
getParamter、<%=、param - SQL注入
select、 dao、from、delete、update、insert - 任意文件下载
download、fileName. filePath.write. getFile、getWriter - 任意文件删除
delete、deleteFile、fileName、filePath - 文件上传
upload、write、 fileName、filePath - 命令注入
getRuntime.exec. cmd、 shell、 processBuilder.star - XML注入
DocumentBuilder、XMLStreamReader、SAXBuilder、SAXParser、SAXReader、XMLReader、SAXSource,``TransformerFactory、SAXTransformerFactory.SchemaFactory` - JNDI注入
lookup - 反序列化漏洞
ObjectlnputStream.readObject、ObjectInputStream.readUnshared、XMLDecoder.readObject. Yaml.load、XSream.fromXML、ObjectMapper.readValue、JSON.parseObject - url跳转
sendRedirect. setHeader、forward - 日志记录敏感信息
log、log.info、logger.info
- 密码硬编码、

浙公网安备 33010602011771号