记一次java代码审计

VSole2021-09-16 15:10:38
首发:先知社区 https://xz.aliyun.com/t/10198前段时间属实是有点整的太难了。这几天静下心来继续弄点简单的。就直接进行审计把。不说那么多,环境部署好了,开干。说一下我审计的前提准备。过滤器是一定要看的。当然才开始审计的时候可能会看的比较恼火,看不懂当我没说。简单的还是要看一下。涉及到一些函数处理的可以等到实际挖洞的时候再跟也行。然后就是cms的整个架构,哪个模块对应什么功能都是需要了解的比较透彻。涉及框架的,框架的漏洞涉及的组件要清楚,框架的配置文件再看看,就开冲。才开始代码审计,还是每个接口都看一下。老规矩。

注册接口审计

注册流程分析
(1)判断是否登录,登录以后就跳出注册页面
(2)判断是否验证码为空或者错误则返回并告知验证码出错(
验证码为刷新可暴力破解用户名枚举)(3)邮箱格式判断
(4)判断用户名,密码格式是否正确
(5)判断邮箱用户id是否存在,存在就返回已存在。否则就进行注册
(6)预编译进行sql插入。
这样子分析下来,也只能做个用户名和注册邮箱枚举了,放两个个sql处理的关键的图,
主要是看这里拼接出了预编译。

登录接口审计

登录接口审计,没啥大问题,放几张图。
这里有个小问题就是任意跳转,不过要登录成功了才行。可以看看代码。

任意跳转

这里获取了传入的pre_page做判断,如果登录成功就重定向过去。burp抓包也能看到。

前台不要浪费太多时间先,直接冲后台

这种要养成习惯,这种权限相关的要做个笔记,万一有机会绕过呢。usertype=1是
登录后台的权限设置。

找到一处文件上传的地址,看看

这种url的也要看看,说不定有ssrf

这里是得到系统的路径,暂时我们是不可控的

看一下对文件名是怎么处理的
(1)文件路径做更改,前面有个append的路径添加进去了(都是写死的,暂时不用太关注)
(2)对文件进行重命名

文件重命名分析
(1)判断文件是否存在

(2)判断新的路径的文件是否存在,不存在就创建(注意到这里我们的文件路径都是
不可控的)(因为这里是先上传保存,再进行处理删除,所以说这里存在竞争,但是实
际是利用不了的,后续可以看。)
(3)获取源文件名。(未对源文件名做处理)
(4)判断并截取了文件的后缀。{后缀名:fileExt 文件名originalFileName}
(5)对文件名做了时间+随机数处理
(6)重新生成了一个文件对象,并返回。

看一下这里 先创建了临时路径,然后再上传了我们的传入文件,此时还是没有改名的。
也就是说如果我们可以访问,那么就存在竞争了。
(当然前面也很体贴的帮我们看了能不能有写权限)(最后发现这个目录下如果访问
jsp,jspx就直接404了)

找了一下过滤器,发现。。。。。。。。jsp ,jspx都不能直接访问。

保存的时候还是不出意外的做了预编译。跟到这里流程差不多了,
但是我们好像没有发现对后缀进行了处理。试一试直接上传jsp

出现了问题,跟一下看看,是在 ((MultipartRequest)request).getFiles();
未获取到。限制了jsp和jspx不能上传。

暂时放一下。如果是apache的话还能上传配置文件,windows$DATA流试了一下没成功。

SQL查看

上传暂时放弃一下,看一下有没有注入,预编译虽然比较多,但是我们知道limit,
orderby后面是不能预编译的。先放一个跟出来的sql检查。
说一下这个下断点跟就行了,没有太多的技术要求,主要还是看代码。
(看一下过滤的,果断猜测xss过滤也是在这里。如果最后拿不下shell,
能出几个xss钓cookie也还是勉勉强强吧。)

先看第一处,因为才开始顺手一点,发现这里确实是直接拼接的,
但是因为获取的整数类型,传入payload类型不对所以直接报错了。
(这里也要注意,不要看到直接拼接就下断定有。推荐一个工具 
seay的mysql监控工具,可以看的很直观)


看一下模块这里,这里现在是继承者全村大半人的希望了,如果没有出东西,
最后还是要去看看有没有注入啥
所以这里不能做路径穿越穿出去,但是好像没有对路径做限制,
只限制了不能读取config和几个路径。所以这里应该是有问题的。
并且他默认是往根目录去读取。

比如这里,都出来了web-inf/lib目录下的包。

尝试看看读取文件,说实话这里有点服气,只给了文件的信息,没有给内容。
那也就是说没有太大的卵用。

然后高潮就来了,他这个模块的功能有点多。还能进行下载,
重命名等。放在根目录,岂不是看到了希望的曙光,要是能读个数据库密码啥的
也是不需此行,试一下。只能说不负众望。

payload
http://10.70.40.114:8080/xxx/admin/filemanager?mode=download&path=/web-inf/classes/conf/db.properties&config=filemanager.config.js
不要急,一般这种造成的都会有连坐,比如任意文件删除(只限制再web目录)。
(这里怕把系统整完了,就新建一个文件然后删除)

成功了。其他的替代这一种不是很想尝试,因为他限制了不能直接访问jsp,
jspx也就是直接写马不行的。传配置文件的方式我们上传就能直接解决不需要这么麻烦。

系统都是一些配置编辑的功能,没有特别的新的。这次只出了一个文件读取和文件删除
,能够读取数据库配置文件还是有一定的危害。因为还有sql哪些没有审计,
所以说不一定拿不到通用shell(apache的话上传配置文件可以拿)。主要是审计思路
的多多练习,和审计习惯的锻炼
审计流程
本作品采用《CC 协议》,转载必须注明作者和本文链接
个人认为,作为一个要入门代码审计的人,审计流程应该从简单到困难,逐步提升。而我在进行blueCMS审计之前,网上也搜索了blueCMS的审计文章。一般都是文章中只提到了两个漏洞,一个是位于根目录下的ad_js.php文件中,存在sql注入。
发布的2022 Risk in Focus 报告和国际内部审计师协会 发布的OnRisk 2022 报告中,网络安全第五次蝉联组织的关键风险之首。此外,IIA的OnRisk 2022报告指出,内部审计师在网络安全风险鉴证方面的能力差距是最大的。缺乏良好的规划会对参与和报告阶段产生严重影响。显然,对大量控制的审计将分别在多年内展开。
云计算安全审计概览
2022-08-02 10:03:32
开展云安全审计正是保障云计算应用安全的有效手段之一,它能够将云上业务运营状态及风险进行充分地检验和评审,预防发现可能出现的安全隐患。云安全审计的价值云安全审计是一套流程,旨在识别与云计算应用相关的安全漏洞和风险。Astra Pentest、Prowler、Dow Jone’s Hammer、ScoutSuite和CloudSploit Scans是目前最常用的云安全审计工具。
2020年接受调查的IT安全专业人员中有78%表示,当他们的组织接受审计时,他们个人也感到害怕。到2021年,这一数字已上升至95%。
审计师应该从物理设备和软件应用内安全视角,仔细检查并评估每个防火墙的威胁响应状况。审计师在检查防火墙运行规则时,需要考虑以下几个问题:现有的规则库中有没有已过时的规则策略?执行风险评估发现潜在的问题风险评估是开展防火墙运营审计工作中不可缺少的关键性要求。
文章首发在:奇安信攻防社区https://forum.butian.net/share/2142前言 如果存
近来年,在中央新发展理念的引领下,江苏江南农村商业银行股份有限公司(以下简称江南农村商业银行)实现平稳快速可持续发展。随着银行业务量的增长,其生成的数据呈几何级增长,传统的内部审计工作模式面临着前所未有的挑战。稽核审计部为应对挑战,积极拥抱大数据技术,引入华为大数据Elk集群,建设大数据审计系统。
随着数据规模增长,越来越多的用户选择将他们的文件外包存储在第三方的云服务器上。然而,数据的外包会带来一系列的安全问题,例如云服务器的硬件故障、黑客入侵篡改等会导致用户数据的损坏。更严重的是,云服务器为了保护自己的声誉可能掩盖数据受损的事实,甚至会伪造用户的数据。云数据完整性审计技术是一种关键的数据安全技术,用来解决上述的问题。本系列文章聚焦在云数据完整性审计技术,分别介绍1)云数据完整性审计技术的
欢迎报名参加“个人信息保护合规审计推进小组”
《个人信息保护法》将合规审计设定为处理者的法定义务,但如何开展审计仍存在诸多争议。本文结合域外经验,提出企业开展个人信息合规审计的目标、范围、流程和组织等实施路径。
VSole
网络安全专家