代码审计|基于某Java开源系统的代码审计

2 篇文章 0 订阅
订阅专栏

作者:不染
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

0x00 前言

本篇文章为Java代码审计入门的一篇文章,篇幅有限,很多漏洞没有审计覆盖,以后有时间再更新一个系列。

0x01 基础环境

1.1 技术框架

核心框架:SpringBoot 2.0.0
持久层框架:Mybatis 1.3.2
日志管理:Log4j 2.10.0
前端框架:Vue 2.6.10
UI框架: Ant-Design-Vue 1.5.2
模板框架: Jeecg-Boot 2.2.0
项目管理框架: Maven 3.2.3

1.2 开发环境

IDE: IntelliJ IDEA 
DB: Mysql 5.7.33
JDK: JDK 1.8
Node: Node 8.17.0
Maven: Maven 3.2.3+
Redis: 6.2.1
Tomcat: 9.0.45

0x02 个人审计思路

  1. 如果可以结合渗透测试,那就先看看这套程序有哪些功能,然后从漏洞级别高危到低危挖漏洞(比如任意文件删除,xss,文件上传之类);

  2. 同时利用fortify进行扫描,生成初步扫描结果,进行误报分析,排除误报

  3. 确定框架,分析框架漏洞,分析组件漏洞,查看是否有常见存在漏洞的第三方组件、查看已知安全策略,比如有没有配置sql注入或者xss过滤器;

  4. 如果可以查看系统的设计文档、接口文档,那就通过分析业务设计的合理性来分析逻辑漏洞, 根据接口文档,通过正向数据流分析漏洞;

  5. 漏洞级别从高危到低危搜索一些敏感函数、关键函数以及敏感关键字,查看调用链是否有安全措施;

  6. 如果是微服务架构,单个系统先进行审计,后续整体进行评估,评判接口,逻辑设计等问题 。

注意:代码审计只是找出了可能会造成安全问题的风险项,受多重因素(比如WAF、参数并非前端传入)等影响,并非能被直接利用。

0x03 开始审计

先查看pom.xml文件,发现是SpringBoot框架,并且FastJson为1.2.55版本(这是一个漏洞版本)。
SpringBoot的执行流程和SSM大致相同,不过SpringBoot搭建的Web项目里简化了许多配置文件。
在这里插入图片描述
之后再查看application.properties文件,发现这里超时时间过长
在这里插入图片描述
数据库连接也是弱密码和明文(生产环境请用强加密或强密码)
在这里插入图片描述
全文没有看到XSS及SQL注入过滤器及相关插件。试一试Springboot的信息泄露:路由地址及接口调用详情泄漏开发人员没有意识到地址泄漏会导致安全隐患或者开发环境切换为线上生产环境时,相关人员没有更改配置文件,忘记切换环境配置等。

直接访问以下swagger 相关路由链接来验证漏洞是否存在:

http://192.168.0.1:8080/v2/api-docs

在这里插入图片描述
一般来讲,暴露出 spring boot 应用的相关接口和传参信息并不能算是漏洞,但是以 “默认安全” 来讲,不暴露出这些信息更加安全。对于攻击者来讲,一般会仔细审计暴露出的接口以增加对业务系统的了解,并会同时检查应用系统是否存在未授权访问、越权等其他业务类型漏洞。
继续看一下过滤器都过滤了哪些内容,搜索@WebFilter定位
在这里插入图片描述
这里看到,对ignoredUrl及filterPath的value内的字段做请求时不会进行拦截

接着再看doFilter方法是如何实现的
在这里插入图片描述
由上述分析总结出触发认证绕过的场景:

  1. requestUrl中如果存在/doc.html,/register.html,/login.html字段就可以绕过。

  2. requestUrl中如果存在…/a.css/…/,…/a.png/…/,也可以绕过认证请求。

  3. requestUrl中如果以/user/login,/user/registerUser,/v2/api-docs等字符开头的时候,也可以绕过认证请求。

0x04 认证绕过

4.1 接着上面分析验证

1、验证第一种情况:
requestUrl中如果存在/doc.html,/register.html,/login.html字段就可以绕过。

无JSESSIONID的请求:
在这里插入图片描述
被重定向到登录界面

加入payload请求:
在这里插入图片描述
在这里插入图片描述
成功绕过验证去请求接口并得到数据。

2、验证第二种情况:requestUrl中如果存在…/a.css/…/,…/a.png/…/,也可以绕过认证请求。
无JSESSIONID请求:
在这里插入图片描述
被重定向到登录界面

加入payload请求:
在这里插入图片描述
在这里插入图片描述
成功绕过验证去请求接口并得到数据。

3、验证第三种情况:
requestUrl中如果以/user/login,/user/registerUser,/v2/api-docs等字符开头的时候,也可以绕过认证请求。

无JSESSIONID请求:
在这里插入图片描述
被重定向到登录界面。

加入payload请求:
在这里插入图片描述
在这里插入图片描述
成功绕过验证去请求接口并得到数据。

4.2 代码层面防御思路

可以使用Java Web权限认证框架,比如Shiro或Spring Security。

0x05 暴力破解

5.1 审计思路

观察用户登录时的判断逻辑,是否是简单判断,有没有做限制措施,比如次数锁定。
抓包查看,似乎是MD5加密。
在这里插入图片描述
验证了一下,果然!
在这里插入图片描述
这里看到密码做MD5加密处理,并没有其他复杂加密。
在这里插入图片描述
弱加密、没有验证码,如果还没有账户错误次数锁定的话,就可以暴力破解了。
在这里插入图片描述
在这里插入图片描述
由response返回包中的响应码可以看到,暴力破解成功。

5.2 代码层面防御思路

加入token机制,每次登录页面都会随机生成Token字串;
账号锁定机制,数次登录失败后,账号会锁定;
加强敏感字段的加密方式,比如使用SHA-256、SHA-384、SHA-512代替MD5,或者MD5加其他字段。

0x06 会话固定攻击

6.1 审计思路

登录账号成功后记录下会话标识的值,然后退出系统,再次登录,如果第二次的会话标识值和第一次的相同,则存在此问题。
BurpSuite抓包可以看出,两次session是一致的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在logout函数中,并没有对session做会话失效操作,或者未在登录时做会话初始化操作。
在这里插入图片描述
可以在这加一段初始化session的代码。

request.getSession().invalidate();

在这里插入图片描述

6.2 代码层面防御思路

用户登录时生成新的Session ID。如果不是有效的会话标识符,服务器将会要求用户重新登录。

0x07 SQL注入

7.1 审计思路

SQL 注入一般 fortify都能扫描出来;
或者pom.xml中看到系统使用的是Mybatis框架,可以直接去审查Maper.xml文件,查看是否使用$拼接。
在之前的pom.xml文件中发现该框架使用的是Mybatis的数据库,并且为XML配置方式。

Mybatis框架在配置及数据层交互式是有注解和XML两种配置方式。

可以根据Fortify的扫描结果来排除误报:
在这里插入图片描述
在项目中全局搜索 ${
在这里插入图片描述
随便点一个
在这里插入图片描述
这里使用了不安全的拼接的模糊查询,继续搜索selectByConditionUser。
在这里插入图片描述
这是一个数据处理层的接口类。
在这里插入图片描述
继续搜索UserMapperEx.selectByConditionUser。
在这里插入图片描述
在这里插入图片描述
这是Service层,继续搜索UserService.select(
在这里插入图片描述
这里看到userName,loginName是从search字段中获取的,并且参数可控,接下来继续找Controller层的调用。

这里看到,其实UserComponent类实现了ICmmonQuery接口,并调用了select方法。
在这里插入图片描述
而且该目录下存在InterfaceContainer接口文件。
在这里插入图片描述
该段代码逻辑:调用init() 初始化函数 ,将service组件放入configComponentMap中,再调用getCommonQuery方法根据传进来的apiName获取对应的service组件。

继续搜索getCommonQuery(。
在这里插入图片描述
在这里插入图片描述
继续搜索CommonQueryManager,回溯到Controller层。
在这里插入图片描述
上述代码逻辑:实例化CommonQueryManager类的一个对象configResourceManager去调用select方法,传入apiName与paramterMap。

当然role/list这个方法里也存在SQL注入漏洞:验证POC:


GET /role/list?search=%7B%22name%22%3A%221'%20or%20sleep(3)--+%22%7D&currentPage=1&pageSize=10 HTTP/1.1
Host: 192.168.0.1:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Connection: close
Referer: [http://192.168.0.1:8080/pages/manage/role.html](http://192.168.0.1:8080/pages/manage/role.html)
Cookie: JSESSIONID=6FFE9B1B443F8CB5D89481768D578794; Hm_lvt_1cd9bcbaae133f03a6eb19da6579aaba=1624687383; Hm_lpvt_1cd9bcbaae133f03a6eb19da6579aaba=1624689767

可以看到SQL注入成功,但sleep返回时间比较久。
在这里插入图片描述
主要是因为错误和延迟。

在查询语句中使用sleep函数,那么休眠的时间跟返回的记录有关。如果表记录为空,不会休眠,如果表记录一条,那么休眠时间为1n,如果表记录为2,那休眠时间为:2n …以此类推。

控制台看到的SQL语句:
在这里插入图片描述
上述Fortify扫描结果也可以看出,SQL注入漏洞太多,这里不再演示。

7.2 代码层面防御思路

预编译(参数化查询);
存储过程(使用CallableStatement对存储过程接口的实现来执行数据库查询,SQL代码定义并存储在数据库本身中,然后从应用程序中调用,使用存储过程和预编译在防SQLi方面的效果是相同的);
黑/白名单验证(对于诸如排序顺序之类的简单操作,最好将用户提供的输入转换为布尔值,然后将该布尔值用于选择要附加到查询的安全值);
输出转义(将用户输入放入查询之前对其进行转义,大多使用ESAPI)
框架修复(#代替$)。
注意:order by 绕过预编译(order by 后面是不能用预编译处理的只能通过拼接处理,只能手动进行过滤)。

0x08 存储型XSS

8.1 审计思路

反射型 XSS一般fortify都能扫描出来;
web.xml找过滤器看是否有调用 sql 语句存储到数据库,以及是否将内容输出到前端,满足这两点才会存在(当然要没有过滤才可以)。
前面一开始审计的时候,已经知道全文没有XSS过滤器及相关插件和过滤操作。

在某收入单的备注参数处插入xss payload:
在这里插入图片描述
看一下控制台的SQL语句,无任何防护措施直接存入数据库。
在这里插入图片描述
从代码上看,也没有对输入、输出做任何过滤及转义操作。
在这里插入图片描述
直接将查询出的结果以json的形式输出。其他参数也同样存在此漏洞。
在这里插入图片描述

8.2 代码层面防御思路 :

1、全局编写过滤器。

配置web.xml,添加过滤器,比如xssAndSqlFilter

2、比如添加一个jar包:commons-lang-2.5.jar ,然后在后台调用这些函数:

StringEscapeUtils.escapeHtml(string);
StringEscapeUtils.escapeJavaScript(string);
StringEscapeUtils.escapeSql(string);

3、 org.springframework.web.util.HtmlUtils可以实现HTML标签及转义字符之间的转换。

 /** HTML转义 **/
String string = HtmlUtils.htmlEscape(userinput); //转义
String s2 = HtmlUtils.htmlUnescape(string); //转成原来的

0x09 Fastjson反序列化命令执行

9.1 审计思路

反序列化操作一般在导入模版文件、网络通信、数据传输、日志格式化存储、对象数据磁盘或 DB 存储等业务场景。

在代码审计时可重点关注一些反序列化操作函数并判断输入是否可控,如下:

ObjectInputStream.readObject、
ObjectInputStream.readUnshared、
XMLDecoder.readObject、
Yaml.load、
XStream.fromXML、
ObjectMapper.readValue、
JSON.parseObject
  • 在代码审计前可优先查看pom.xml文件,分析是否出现漏洞组件,如CommonsBeanutils、Fastjson<1.2.75等。
    在上面一开始审计的时候已经发现该项目使用了存在漏洞的FastJson版本。

而FastJson的核心在于:调用fastjson.JSON的parseObject函数将json字符串反序列化成对象。

搜索parseObject(
在这里插入图片描述
查看一个Util接口文件,这里直接将search的内容传入parseObject方法中进行解析。

继续搜索StringUtil.getInfo(
在这里插入图片描述
在SQL注入的时候已经分析过,search是从前端传进来的参数。
在这里插入图片描述
构造payload:

search={"@type":"java.net.Inet4Address","val":"ajgk2h.dnslog.cn"}

url编码转换的payload:

search=%7B%22@type%22:%22java.net.Inet4Address%22,%22val%22:%22ajgk2h.dnslog.cn%22%7D

在这里插入图片描述
dnslog平台已经收到了相应的请求
在这里插入图片描述
根据上面查找的结果,search接口全都存在fastjson反序列化漏洞。

search={"@type":"java.net.Inet4Address","val":"hsu1wn.dnslog.cn"}

url编码后的payload:

search=%7B%22@type%22:%22java.net.Inet4Address%22,%22val%22:%22hsu1wn.dnslog.cn%22%7D

利用上面的认证绕过,可以进行未授权命令执行:
在这里插入图片描述
dnslog平台已经收到了相应的请求
在这里插入图片描述

9.2 代码层面防御思路

  • 升级服务端所依赖的可能被利用的jar包,包括JDK;
  • 如果可以明确反序列化对象类的则可在反序列化时设置白名单,对于一些只提供接口的库则可使用黑名单设置不允许被反序列化类或者提供设置白名单的接口,可通过Hook函数resolveClass来校验反序列化的类从而实现白名单校验。

0x10 越权

10.1 审计思路

重点关注用户操作请求时查看是否有对当前登陆用户权限做校验从而确定是否存在漏洞;
有些厂商会使用一些主流的权限框架,例如 shiro ,spring security 等框架,那么需要重点关注框架的配置文件以及实现方法;
如果没有使用框架的话,就需要注意每个操作里是否有权限;
controller层找请求,看请求资源和操作处是否绑定userid。

10.2 越权密码重置

漏洞位置:系统管理>用户管理>选择用户>重置密码
在这里插入图片描述
抓取数据包查看
在这里插入图片描述
这里传入用户id,就可以重置该用户的密码
在这里插入图片描述
在service层查看resetPwd方法的具体实现
在这里插入图片描述
在这里插入图片描述
这里只禁止了重置admin超级管理员密码,但没有对当前用户身份做判断

使用jsh用户的身份去重置test123用户密码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,这里成功使用jsh用户重置了test123用户的密码

结合认证绕过,可以根据用户id未授权重置用户密码
在这里插入图片描述

10.3 越权删除用户

漏洞位置:系统管理>用户管理>选择用户>删除用户信息
在这里插入图片描述
利用BurpSuite抓取数据包查看
在这里插入图片描述
代码这里能看到,传入用户ids,就可以删除该用户信息
在这里插入图片描述
在Service层查看batDeleteUser方法的具体实现:传入ids参数,使用,分割,接着调用batDeleteOrUpdateUser方法将ids参数拼接到sql语句中,没有对当前用户身份做判断就进行删除。
在这里插入图片描述
利用jsh用户删除test123用户:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
利用认证绕过,可以根据用户ids未授权删除任意用户
在这里插入图片描述

10.4 越权修改用户信息

漏洞位置:系统管理>用户管理>选择用户>编辑用户信息
在这里插入图片描述
利用BurpSuite抓取数据包查看
在这里插入图片描述
重点关注id和info两个参数
在这里插入图片描述
在Service层查看updateUserAndOrgUserRel方法的具体实现:
在这里插入图片描述
继续查看checkUserNameAndLoginName方法:
在这里插入图片描述
上下两图代码逻辑分析:调用getLoginName方法来获取传入的id对应的登录名,之后调用getUserListByUserNameOrLoginName方法将登录名拼接到sql语句中来获取用户列表,再从列表中取出id与前端传入的id作比较,相同的话就可以更新数据。(这里并没有对当前用户身份做判断)
在这里插入图片描述
利用jsh用户修改id为133的用户的信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,已成功修改其他用户信息。

10.5 代码层面防御思路

执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限。

0x11 总结

由于篇幅有限,并未对其他相关漏洞进行审计,后续可能也会再写文章进行其他类型漏洞审计,师傅们可以多关注下灼剑(Tsojan)安全团队的其他文章,希望会对师傅们有些帮助。

0x12 了解更多安全知识

欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
欢迎关注我们的安全公众号,学习更多安全知识!!!
在这里插入图片描述

混淆java隐藏源码-AndroidChecklist:Android应用审计checklist整理
06-06
混淆java隐藏源码 Android应用审计checklist整理 在对一个Android应用做安全审计分析的时候,可以从静态、动态2个方面去做安全分析,下面是我整理的常规漏洞的checklist,欢迎大家补充。 一、静态扫描 1 文件信息 2 证书检测 3 权限信息检测 4 so文件检测 5 第三方库/SDK/组件检测 第三方开源库/SDK检测 6 manifest文件检测 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 7 组件安全检测 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 8 webview组件安全检测 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9 sqlite安全检测 9.1 9.2 9.3 9.4 9.5 10 网络通信安全检测 10.1 10.2 10.3 10.4 10.5 11 弱加密风险检测 11.1 11.2 11.3 11.4 11.5 11.6 12 数据安全检测 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 12.10
工行审计系统
04-08
基于SSH框架的银行审计管理系统,包含完整的文档和代码.
Java代码审计
最新发布
2301_76786857的博客
03-11 1327
Java 是一种跨平台的编程语言,具有良好的可移植性和灵活性,因此在各种应用领域得到了广泛应用。从企业级应用到移动应用,从 Web 应用到嵌入式系统Java 都有着重要的地位。然而,由于 Java 的普及性和复杂性,其中的安全漏洞和代码缺陷也变得更加普遍。 Java 代码审计是对使用Java编写的软件代码进行全面检查和分析,通过白盒的方式发现其中的安全漏洞和潜在风险,代码审计已成为保护网络安全性的重要手段之一。
jportsui:基于 Java 的 MacPorts 2.0+ 图形用户界面-开源
06-01
JPortsUI 是一个完整的 MacPorts GUI。 工作流程类似于 Arch 的 Octopi 和 Debian 的 Synaptic。 显示了端口变体选择、依赖项和依赖项列表、端口说明和安装的文件大小。 可以转换为和预览“手册”页为 .PDF。 检索许多 Port 的 Web 域“favicon”徽标图形。 还包括探索工具,可以启发人们了解 Mac 上 FOSS 的当前状态。 目前,最终用户可以通过双击 .JAR 文件在 Mac OS X 10.6 或更高版本上启动 JPortsUI。 但是,也可以通过运行 Mercurial checkout 中包含的 bash 脚本,从此处提供的源代码进行构建。 这需要 Java6 或更新的 SDK,可在 @adaptopenjdk.net 上获得。 没有其他外部库用于更容易的安全审计。 卸载的话~/.zomg/uri-cache/有一个小图标缓存可以删除。 这项工作是根据知识共享署名-相同方式共享 3.0 未移植许可证获得许可的。 版权所有 2013-2020 斯蒂芬·巴伯
代码审计工具Findbugs自动检查CheckList及配置方法
07-04
代码审计工具Findbugs是一个应用比较广泛的开源代码审计工具,如果开发团队利用好了这个工具,能够很大程度上提高软件产品的安全性。而且重要的是Free。 其中介绍内容包括: Malicious code vulnerability 恶意代码 Dodgy 小问题 Bad practice 不好的习惯 Bogus random noise 无效代码 Correctness 代码的正确性 Internationalization 国际化问题 Performance 性能问题 Security 安全性问题 Multithreaded currectness 线程问题 Experrimental 实验性问题
java安全类源码-Cobra:SourceCodeSecurityAudit(源代码安全审计)
06-15
java安全类源码Cobra 该项目设计已无法实现当前白盒扫描要求,已不在维护,仅做研究使用,请勿在生产环境使用 Introduction(介绍) Cobra是一款源代码安全审计工具,支持检测多种开发语言源代码中的大部分显着的安全问题和漏洞。 Features(特点) Multi-language Supported(支持多种开发语言) 支持PHP、Java等开发语言,并支持数十种类型文件。 Multi-Vulnerabilities Supported(支持多种漏洞类型) 首批开放数万条不安全的依赖检查规则和数十条代码安全扫描规则,后续将持续开放更多扫描规则。 GUI/CLI/API Mode(命令行模式和API模式) 提供本地Web Server服务,可使用GUI可视化操作,也可支持本地API接口,方便和其它系统(发布系统、CI等)对接扩展。 Screenshot(截图) Contributors(贡献者) 项目由发起并主导,核心开发者、、、,也感谢其他,欢迎提交PR。 Links(链接)
代码审计工具汇总
10-06
配套 【随 亦】的博客《代码审计--8--环境搭建+工具使用》一文的资料。注意文档哦
浅析开源项目的代码审计
xxx
10-02 1003
最近一段时间,在一个前端大佬那里了解到一个构建知识图谱的开源项目,激起了我的兴趣。我之前讨论过如何构建垂直搜索引擎,本质上也是想构建出独特的领域知识。这个开源项目是以这个开源项目为例,我将一步步剖析如何读懂一个开源项目,以及利用各种方法尽可能的去了解这个项目。
免费开源代码审计工具 Gosec 入门使用
Young的博客
02-02 1118
声明: 本教程是在自己的电脑上本地测试Gosec的效果,所以不涉及其他运行模式,如果想要了解其他模式可以关注后期文档,如果想要自定义交流自定义代码扫描规则,可以跟我交流沟通。 背景: Gosec是一个通过扫描Go AST来检查源代码是否存在安全问题的开源项目。公司到成长到一定程度,就需要对代码进行审计,针对Go的作为主要的开发语言,我就测试一下Gosec的效果。 使用教程 要求 已经配置好Go的开发环境 准备一个测试项目代码 步骤 1. 进入Go环境src目录下 执行命令:go get github.c
代码审计平台开发
yib0y的博客
10-29 1538
关于代码审计,这个东西在安全里面还是占了非常重要的一个模块。有钱的买商业产品,没钱的自己搞搞科研,也可以自己招人开发一个出来,参差不齐。作为一名安全开发其实我也挺想做这一块的,公司内部其实已经有人在做了,突然有一个想法,自己做个开源的产品。集众多开源产品之所长,整个各家资源做一个出来。和公司没有关系。 接下来是架构,开源代码审计平台有: RAPS(http://rips-scanner.sour...
对网站的开源代码进行审计
dichu8371的博客
10-12 305
0x00 前言 @0r3ak 师傅向我推荐了一款代码审计工具Cobra(wufeifei/cobra),该工具基于Python开发,可以针对多种语言的源代码安全性评估。 在测试的过程中,总是不得要领,有一些问题不知道怎么解决,都是又很想了解下这款项目的实现原理。 在这一系列的笔记中,将会记录下对 Cobra 的使用体验,以及源码级的分析。 0x01 基础环境 Ubuntu 16...
Hades:静态代码审核系统
03-11
Hades-静态代码脆弱性检测系统 使用说明 start engine: >> python Hades-cli.py start web server: >> cd geekbackend >> python manage.py runserver 8088 使用docker安装Hades >> docker build -t hades . >> ...
MySQLMonitor:MySQL实时监控工具(代码审计黑盒白盒审计辅助工具)
02-02
2019-01-15:开源第一版 使用: java -jar MySQLMonitor.jar -h 127.0.0.1 -user CoolCat -pass mysqlmonitor 环境: 在以下环境中运行通过 操作系统 Java MySQL 状态 苹果系统 1.8 8.x 行 环境下运行通过理论上...
java版erp管理系统源码-python-open-source-projects:python-开源项目
06-04
java版erp管理系统源码 title python-open-source-projects 做过python + django开发。 关注了很长一段时间的python开源项目。 收集起来。 供日后参考。 监控系统 序号 名称 项目地址 简介 1 sd-agent-plugin-...
java反编译class源码-AndroTickler:适用于Android应用的渗透测试和审计工具包
06-05
java反编译class源码安德罗·提克勒 一个 Java 工具,有助于更快、更轻松、更高效地渗透测试 Android 应用程序。 AndroTickler 提供了许多信息收集、静态和动态检查功能,涵盖了 Android 应用程序渗透测试的大部分...
java笔试题输出结果-VCG:VisualCodeGrepper-代码安全扫描工具
06-20
java笔试题输出结果
Java代码审计中常见的漏洞(三)
武天旭的博客
12-10 1249
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。 本篇介绍了以下代码安全问题: 编号 漏洞 1 路径遍历 2 Session存储非序列化对象 3 XML使用any元素 4 安全方法被重写 5 广泛信任证书 6 不安全的随机数 7 密码编码安全
Java代码审计中常见的漏洞(七)
武天旭的博客
03-03 592
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。 本篇介绍了以下代码安全问题: 编号 漏洞 1 不安全的加密算法 2 密钥长度不足 3 随机数种子安全 4 初始化向量为固定值 5 PBE迭代器数值过低 6 加密密钥安全 7 外部控制密钥大小 1、不安全的加密算法 详细信息 使用不安全的加密算法(如DES、3DES、RC4
Java命令注入_java代码审计 命令注入 及 修复建议
weixin_29374899的博客
02-12 1114
命令注入:是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。在Web应用中,有时候会用到一些命令执行的函数,如php中system、exec、shell_exec等,当对用户输入的命令没有进行限制或者过滤不严导致用户可以执行任意命令时,就会造成命令执行漏洞。命令注入漏洞主要表现为以下两种形式:1、攻击者能够算改程序执行的命令:攻击者直接控制了所执行的命令。2、攻击者能够复改命...
java项目代码审计工具
10-26
Java项目代码审计工具有很多种,以下是其中几种常用的工具: 1. FindBugs:一个静态分析工具,可以检测Java代码中的潜在缺陷和错误。 2. PMD:一个静态分析工具,可以检测Java代码中的潜在问题和错误,并提供代码重构建议。 3. Checkstyle:一个静态分析工具,可以检查Java代码是否符合编码规范。 4. SonarQube:一个开源平台,可以对Java代码进行静态分析、代码质量管理和代码审计。 5. IntelliJ IDEA:一个集成开发环境,可以通过插件进行Java代码审计。 需要注意的是,这些工具虽然可以帮助审计者快速发现一些常见的漏洞和问题,但是并不能完全替代人工审计。因此,在进行Java代码审计时,还需要结合人工审计的经验和技巧,才能更加深入地发现安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 移动端安全 | Windows11安卓子系统进行APP抓包(踩坑文) 8679
  • 基础知识点|命令执行漏洞相关总结 8084
  • 域安全|AD CS Relay—ESC8 7434
  • 红队技术之信息收集 6988
  • 网络攻防|Web后门知识详解 5192

分类专栏

  • 网络攻防 7篇
  • 代码审计 2篇
  • Web安全 16篇
  • iot 1篇
  • 绕过 1篇
  • 域渗透 12篇
  • 靶场 3篇
  • 漏洞复现 8篇
  • 知识 9篇
  • 工具开发 13篇
  • 移动端 3篇
  • Android 2篇

最新评论

  • 域渗透|域权限维持之SSP

    不习惯有你: 讲的很赞

  • Linux下应急溯源常用命令

    Doctor65535: source .bashrc这里没写清楚, 修改的etc/profile 应该用source /etc/profile 修改bash配置应该用 source ~/.bashrc, 修改bash配置-当前用户生效用source ~/.bash_profile

  • 网络攻防|CVE-2021-42287、CVE-2021-42278域内提权

    匿名用户0x3c: 师傅,我执行dir \\win2012.god.com\c$ 的时候显示系统无法访问该文件,这是啥情况?

  • 白盒审计工具codeql的安装(踩坑)

    灼剑(Tsojan)安全团队: 他有一次性执行限制数的最多同时可以进行20个 所以还是一个个来吧

  • Linux下应急溯源常用命令

    灼剑(Tsojan)安全团队: 内核不同只是少数几个命令有差别,不影响

最新文章

  • heapdump 攻击面利用
  • ThinkPHP 5.1反序列化分析和poc
  • UAC绕过学习-总结
2022年12篇
2021年62篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灼剑(Tsojan)安全团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司坂田网站推广工具报价鹤岗网站制作设计多少钱塘坑模板制作多少钱孝感网站开发报价内江seo排名报价安康英文网站建设哪家好汕头模板制作价格曲靖网站设计报价南联推广网站多少钱安康百度网站优化公司雅安百度seo价格庆阳网络推广价格宝鸡网站推广系统报价辽阳百度标王长葛网络广告推广咸阳营销网站推荐荆门百姓网标王推广多少钱绥化百姓网标王公司承德网站优化按天计费价格大浪设计网站价格迁安网站开发推荐延边SEO按天收费民治模板制作哪家好徐州百度网站优化临沂百度网站优化排名推荐江门建网站报价岳阳网站seo优化公司大庆关键词排名哪家好渭南模板制作推荐霍邱网站优化按天扣费哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化