[代码审计]记一次简单的java代码审计

JAVA代码审计 在后端代码处,首先经过Filter(过滤器)和Interceptor(拦截器),然后根据请求的URL映射到绑定的Controller,之后调用Service接口类,然后再调用serviceImpl接口实现类,最后调用DAO。src/main下面有两个目录,分别是java和resources,java目录中主要存放的是java代码,resources目录中主要存放的是资源文件,比如:html、js、css等。@ResponseBody 注解:将该注解写在类的外面,表示这个类所有方法的返回的数据直接给浏览器。 阅读详情

如果觉得该文章有帮助的,麻烦师傅们可以搜索下微信公众号:良月安全。点个关注,感谢师傅们的支持。

免责声明

本博客所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全性自测。如因此产生的一切不良后果与文章作者和本公众号无关。如有涉及公司与个人敏感信息,侵权烦请告知,我们会立即删除并致歉。

前言

记录一次极其简单的代码审计,技术含量较低,适合代码审计小白观看,不喜勿喷。

利用工具

https://github.com/webraybtl/CodeQLpy

第一步:生成数据库初始化,-t指定代码根目录,-c表示为编译后代码,不指定-c表示为.java代码。

python .\main.py -t D:\code\SourceCode\xxxx\ROOT -c

第二步:生成数据库,这一步直接使用上一步命令最终返回的生成数据库的命令在cmd/bash环境中运行即可。

codeql database create out/database/ROOT --language=java --command="D:\tools\CodeAudit\CodeQLpy\out\decode/run.cmd" --overwrite

第三步:开始扫描,运行完成之后最终会返回结果文件,结果文件是csv文件,保存目录在out/result/目录之下。

python .\main.py -d D:\tools\CodeAudit\CodeQLpy\out\database\ROOT

生成的csv文件。

代码审计与漏洞利用

查看生成的csv结果文件,发现有FileWrite,排除掉jsp文件后,可以看到很明显给出了漏洞代码所在类与方法。

定位到漏洞代码位置之后,发现逻辑很简单,就是获取表单中名称为imgFile的文件,最终将上传的文件保存在 /pages/uploads/目录下,期间没有对上传的文件的后缀做校验。

构造poc上传文件发现报错提示:java.io.ByteArrayInputStream cannot be cast to java.io.FileInputStream

类型转换错误,经过搜索后发现是因为文件大小不同时,返回类型不同的问题。

根据描述,我们只要将上传的文件内容写的大一点就行了。

【神兵利器】代码审计利器——CodeQLPy CodeQLpy,使用之后可以提升代码审计效率,并且可以发现一些漏掉的漏洞 阅读详情

相关推荐

【代码审计篇】 代码审计工具Fortify基本用法详解

Fortify全名叫Fortify SCA ,是惠普公司HP的出品的一款源代码安全测试工具,这家公司也出品过另一款Web漏洞扫描器,叫做 Webinspect。美国的Fortify、Coverity、Codesecure、IBM AppScan Source 以色列的Checkmarx、加拿大的Klockwork是现在国际上比较出名的几款代码审计工具,那么接下来就Fortify来介绍一下使用方法。

李同學AI安全 1万+

「Java代码审计」Java代码审计基础知识「一」

转移发布平台通知:将不再在优快云博客发布新文章,敬请移步知识星球... ...

橙留香Park的博客 5124

Java代码审计入门篇

作者:i春秋核心白帽yanzmi原文来自:https://bbs.ichunqiu.com/thread-42149-1-1.html本期斗哥带来Java代码审计的一些环境和工具准备。Java这个语言相对于PHP来说还是比较复杂的,所以一开始接触到Java源码审计的时候会遇到一些关于环境和配置上一些困难,本文记录斗哥在开始去审计Java代码的一些准备,希望能够帮助到刚入门的新手朋友们。0×00 J...

xiaoi123的博客 8413

[ 代码审计篇 ] 代码审计思路 详解

源代码审计是网络安全技术工作的重要内容,是安全岗位必备技能。 渗透测试岗几乎都会问道代码审计,这篇文章就来聊一聊代码审计的思路。 这篇文章就来聊一聊什么是代码审计,什么是静态测试 ? 重点部分:代码审计工具介绍,代码审计的思路介绍。 不要觉得代码审计很容易,也不要觉得代码审计很难,重在坚持,重在分析。 文中出现的细节在后续中都会有详细解读!!!

qq_51577576的博客 2万+

OSWE—我的代码审计之路

大家好,我是 zkaq-念旧。上周,我终于获得了我梦寐以求的 OSWE 认证,然后安心过了个节,现在我也算是半只脚踏进代码审计圈了。在本篇文章中,我将介绍有关于 OSWE 课程的信息、考试规则、解答常见疑问,以及分享我的备考经验,我将带领你一步一步拿到属于你自己的 OSWE 认证。疯狂暗示(话说社区好像没有 “证书分享” 板块,要不加一个?大家考了证都来分享分享经验和心得,争取掌控全员 OSCE3 [狗头])疯狂暗示我不会任何的内网渗透知识,但我在代码领域专精。

zkaqlaoniao的博客 3858

Java代码审计企业级实战

跨站请求伪造是一种使已登录用户在不知情的情况下执行某种动作的攻击。在/reset接口,因为代码@SessionAttributes("user"),将user对象从ModelMap中读出并放入session中,因此user中的answer=hhd也加入了session中。但当输入的反序列化的数据可被用户控制,那么攻击者即可通过构造恶意输入,让反序列化产生非预期的对象,在此过程中执行构造的任意代码。恶意攻击者可以伪造ZIP文件中用来描述解压条目大小的字段,因此,getSize()方法的返回值是不可靠的。...

悦分享 2946

Java Web安全之代码审计

信息安全的75%发生在Web应用而非网络层。本文内容主要以Java Web安全-代码审计为中心展开。 一、JavaWeb 安全基础 1. 何为代码审计? 通俗的说Java代码审计就是通过审计Java代码来发现Java应用程序自身中存在的安全问题,由于Java本身是编译型语言,所以即便只有class文件的情况下我们依然可以对Java代码进行审计。对于未编译的Java源代码文件我们可以直接阅读其...

Fly_鹏程万里 9419

【Java代码审计】代码审计的方法及常用工具

Eclipse 是 Java 开发者非常喜欢的工具之一,它具有强大的编辑、调试功能,允许开发人员安装不同的插件,从而拓展不同的功能。Burp Suite 是渗透测试工作者必备的一款工具,同时对于代码审计者和安全研究人员来说,这也是一款比较重要的测试工具,其跨平台、便捷、强大的功能以及丰富的插件,深受信息安全从业者的喜爱。Ysoserial 是一款开源的 Java 反序列化测试工具,内部集成有多种利用链,可以快速生成用于攻击的代码,也可以将新公开的反序列化漏洞利用方式自行加入 Ysoserial 中。

大河之犬的博客 2961

Java代码审计第一站——初识Java代码审计

随着`Java Web`应用越来越广泛,安全审计已经成为安全测试人员需要直面的工作,虽然`PHP`在中小型互联网中仍然占据着一席之地,但在主流的大型应用中,`Java`仍然是首选的开发语言,国内外大型企业以`Java`作为核心的开发语言。因此对于安全从业者来说,`Java`代码审计已经成为必须要掌握的关键技能。

2301_80217770的博客 1501

[ 代码审计篇 ] Java web 代码审计 详解(一)

Java web 的代码审计 第一篇 Java web 的代码审计 思路

qq_51577576的博客 4664

Java代码审计技巧

自定义搜索范围示例:自定义搜索范围后就可以在搜索时使用自定义的配置进行范围搜索了,有助于我们在挖漏洞的时候缩小代码定位范围。

悦分享 1666

java代码审计学习

java代码审计学习

chanziSAST的博客 2236

UE5.4像素流送实战:GPU驱动、WebRTC与系统级调优全解析

像素流送是将实时3D渲染画面通过WebRTC编码推流至浏览器的关键技术,其本质是GPU硬件编码(如NVENC)与低延迟网络传输(UDP+BBR)的深度协同。理解其原理需跨越图形API(Vulkan/DX12)、实时音视频(H.264/H.265)、WebRTC信令与NAT穿透四大技术层。技术价值在于突破终端算力限制,支撑远程工业仿真、云VR看房等高交互场景;但落地难点集中于基础设施层——如NVIDIA驱动与UE5.4.3的CUDA Toolkit 12.2兼容性、Linux内核TCP/UDP参数调优、GPU

weixin_32943857的博客 615

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

作者:不染 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。 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 项目管理框架:.

weixin_42282189的博客 2632

基于Ventoy制作单个U盘引导Windows+Linux+黑苹果macOS

一款国内高手开发的一个名为Ventoy的开源多系统启动U盘制作工具,官方链接:https://www.ventoy.net/cn/index.html Ventoy 特点 不影响U盘日常普通使用 直接从ISO文件启动,无需解开 支持MBR和GPT分区格式(1.0.15+) 支持超过4GB的ISO文件 支持大部分常见操作系统, 已测试650+ 个ISO文件 不仅仅是启动,而是完整的安装过程 版本升级时数据不会丢失 Ventoy 待改进 不支持macOS和ChromeOS 准备2个空的U.

wybarcelona的博客 3万+

一文搞懂STM32定时器翻转模式(产生多路频率、占空比的PWM)

(产生多路频率、占空比的PWM)

weixin_56688599的博客 7935

开源框架PublicCMS的一次简单代码审计

最近看见有些师傅写的关于PublicCms的后台RCE文章,查了一下,忽然发现这个历史久远的cms忽然被申请了不少的cve,好奇心突发,于是决定先自己审计一遍存在漏洞的框架,然后将审计出来的漏洞和cve,github的issue来进行一波对比,看看有哪些自己没有发现的,提高自我水平。在本篇中,只挑选几种代表性的漏洞类型以及感兴趣的漏洞进行分享,有的只是思路,并没有利用成功,感兴趣的师傅可以再看一看进一步深挖。

鸣蜩十四的博客 2792

手把手教学|用飞书+扣子工作流实现自动化批量图片生成,效率提升99%!体验完整操作流程

在先前的文章中,我们已经深入探讨了扣子智能体的多种应用场景,以及如何创建和使用工作流进行高效管理。本文将引领大家通过一个具体案例,将扣子的工作流功能嵌入飞书应用中,实现操作的自动化与高效化。

weixin_66485800的博客 6028

JAVA代码审计总结

本文总结了代码审计的思路方法和常见漏洞类型。代码审计主要采用逆向追踪、正向追踪、功能点定向挖掘和通读全文四种方法,各有优缺点。常见漏洞类型包括SQL注入、文件上传、XSS、目录穿越、URL重定向、命令执行、XXE、SSRF、SpEL表达式注入和反序列化等。针对每种漏洞,文章详细介绍了其关键词、审计思路、利用方法和修复手段。例如SQL注入可通过搜索Statement等关键词定位,文件上传需关注后缀校验逻辑,XSS需检查输出点过滤情况等。修复措施主要包括参数过滤、禁用危险函数、使用安全API等。

绘梨衣の沉默的博客。主要是CTF竞赛,网络安全,渗透测试,HVV,以及学习到的各种知识的分享 1360

手把手教你复现KDD 2024时空预测顶会论文:以UniST和ImputeFormer为例的代码实战与避坑指南

本文详细指导如何复现KDD 2024顶会论文中的UniST和ImputeFormer模型,涵盖环境配置、数据处理、模型训练及评估等关键步骤。通过实战案例和避坑指南,帮助研究者掌握时空预测与插补技术,提升在智慧城市、交通管理等领域的应用能力。

weixin_29204205的博客 279

一文搞定3D卷积

在讨论卷积核的时候,是不把channel维加进去的 核 = 一个可以滑动的窗口 窗口内不同位置数据之间的权值共享 3D卷积,卷积核会在3个方向上运动,那么卷积核的运动需要有三个自由度(一小块立方体,在一个大面包块内3个方向上滑动 2D卷积,卷积核只在2个方向上运动,因此只有两个自由度(一小片纸,在一大张纸内2个方向上滑动 1D卷积,卷积核只在1个方向上运动,因此只有一个自由度(一条滑窗,在一大长线上1个方向上滑动 一个卷积核运算一次 得到一个输出值 以上讨论了单个卷积核,接下来考虑多通道,一个卷积核对应一

njuptalex的博客 3万+

java代码审计(入门级)—基础漏洞合集

介绍简单的java代码审计,识别程序中存在的经典漏洞

weixin_49349476的博客 3472

Flutter:如何在Android中实现串口通信调试

本文介绍如何通过flutter_libserialport插件在Flutter中实现串口通信调试。

sg_knight的专栏 6098
上一篇: [漏洞合集]致远获取后台权限及权限绕过漏洞大合集
下一篇: [工具推荐]前端加解密之Burp插件Galaxy
LiangYueSec
博客等级 码龄2年 560粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值