前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0day审计之某微代码审计

0day审计之某微代码审计

作者头像
亿人安全
发布2022-12-23 15:09:12
1.8K0
发布2022-12-23 15:09:12
举报
文章被收录于专栏:红蓝对抗红蓝对抗

前话:

可以回看前文《java代码审计新-从0到无》,这里就不再诉述。

第一:看历史漏洞

泛微前台注入/js/hrm/getdata.jsp注入点前台注入

https://www.cnblogs.com/0day-li/p/14637680.html,关键点java全局

搜索“request.getParameter(”并且java类里面必须存在“executeSql”。

代码语言:javascript
复制
第二:流Stream

搜索文件上传的关键类或者方法,这里我直接搜索流(Stream),全局搜索new BufferedInputStream(,idea只能显示一部分可以利用sublime_text进行搜索,我就用后者搜索可以显示多点,不过这里不懂怎么指定后缀搜索,搜索出285处133个文件,主要看java类。

这里跟进到这个文件(类),可以用idea看会好看一点,也比较看得

懂。

代码语言:javascript
复制
思路:
代码语言:javascript
复制
1:获取/mobilemode/skin的文件夹目录
代码语言:javascript
复制
2:file文件上传参数赋值给i,默认为0
代码语言:javascript
复制
3:判断sql查询imagefile的filerealpath,isaesencrypt,aescode返回是否有值
代码语言:javascript
复制
4:将sql查询到的filerealpath值赋值到str3
代码语言:javascript
复制
5:通过file实例获取str3赋值到file2

6:通过file实例获取/mobilemode/skin和当前时间+1L创建新的实例赋值到

file3,不存在文件夹就创建(随机文件夹)

7:file2和file3的路径加载到upzip方法,并创建压缩文件实例进行解

8:创建BufferedOutputStream和BufferedInputStream,

BufferedOutputStream实例将file3读取并设置根目录,而BufferedInputStream实例将通过zipfile对象获取流

9:以1024字节读取BufferedInputStream并以1024字节写入

BufferedOutputStream的流里,也就是解压的文件,并刷新。

10:回到_import方法,判断file3下的_.xml、.css文件和images文件夹是否

存在

11:将file4的值(xml文件)加载到readxml方法进行读取,检查是

否有id、name、previewImg、isEnabled、order、subCompanyId的属性并利用三元表达式进行判断,并返回skin。(建议都不为空)

12:判断返回值是否为空并且id属性不能为空,后面的就不关心了

代码语言:javascript
复制
调用链:

classbean/com/weaver/formmodel/mobile/skin/SkinAction.java

(怎么搜索的?全局搜索)execute方法判断action等于import就加载_import方法,

并且将httpServletRequest对象加载进去,而这个getAction怎么来的?

他这个方法是继承了extends MobileAction并通过http请求获取action参数,然后进行全局jsp文件搜索SkinAction,发现通过了jionActionUrl方法调用,在第2行包含了<%@ include file="/mobilemode/init.jsp"%>,根据里方法构造出路径。

代码语言:javascript
复制
路径:

/mobilemode/Action.jspinvoker=com.weaver.formmodel.mobile.skin.SkinAction&action=import

代码语言:javascript
复制
地址:

http://127.0.0.1/mobilemode/skin/C99ABD76E1D00001197FF6521E5B160/1.txt

代码语言:javascript
复制
最后
代码语言:javascript
复制
压缩包下必须存在_.xml、.css文件和images文件夹
代码语言:javascript
复制
xml文件必须有id、name、previewImg、isEnabled、order、subCompanyId的属性
代码语言:javascript
复制
路径:
代码语言:javascript
复制
/mobilemode/Action.jsp?invoker=com.weaver.formmodel.mobile.skin.SkinAction&action=import

马子:

http://127.0.0.1/mobilemode/skin/321321/1.jsp

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亿人安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档