0day审计之某微代码审计

简介: 0day审计之某微代码审计

第一:看历史漏洞

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

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

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

第二:流Stream

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

ce6c326672649b72c6eeac7d661f31a7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

664adf6370a1d1fa9ca64d5189432c83_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

a15d4657dafd125edf21a5afbe1028ae_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

懂。

e73101e5e4073abbb33dd0fd372e8c6f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

b82943a4bc4ccf6ab72b34f12604cccf_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

93405e1049be479686475c3177357174_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

思路:

1:获取/mobilemode/skin的文件夹目录

2:file文件上传参数赋值给i,默认为0

3:判断sql查询imagefile的filerealpath,isaesencrypt,aescode返回是否有值

4:将sql查询到的filerealpath值赋值到str3

5:通过file实例获取str3赋值到file2

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

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


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


8:创建BufferedOutputStreamBufferedInputStream

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


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

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


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

存在


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

否有idnamepreviewImgisEnabledordersubCompanyId的属性并利用三元表达式进行判断,并返回skin。(建议都不为空)


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

47aecdcf9e21cbde73467c9e7cb2f595_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

e3c9d1cdf779e0060cfacea87f39d085_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8e7f5d6d42dd2c9c414ddaa72b3f55e9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

7dbda6ea48ed3c6dfb07c229ebccb636_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

ecc5920744e638d96d605fe4168ea430_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

调用链:

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"%>,根据里方法构造出路径。

路径:

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

00474e6033945e7a6aa2605ad794b84e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

e73697144afe4a5b06a2de73e62dbc24_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

337d41688d5ba2525d4dd80e33f4e75e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

affa80a0021f560a85ce4f09e915acfd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

37c5326a38cf46bdaa3481f95caf51c2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

地址:

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

0e0ea7570910b420b1e38b2828484ec4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

最后

压缩包下必须存在_.xml.css文件和images文件夹

xml文件必须有idnamepreviewImgisEnabledordersubCompanyId的属性

路径:

/mobilemode/Action.jsp?invoker=com.weaver.formmodel.mobile.skin.SkinAction&action=import

马子:

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

相关文章
|
8月前
|
安全 前端开发 数据安全/隐私保护
BurpSuite进阶篇--自动化挖掘越权漏洞
BurpSuite进阶篇--自动化挖掘越权漏洞
352 0
|
2天前
|
PHP
【攻防世界】easyphp(PHP代码审计)
【攻防世界】easyphp(PHP代码审计)
|
2天前
【攻防世界】warmup (代码审计)
【攻防世界】warmup (代码审计)
【攻防世界】warmup (代码审计)
|
9月前
|
供应链 安全 物联网
漏洞挖掘和安全审计的技巧与策略
漏洞挖掘和安全审计是保护信息安全的重要环节。通过适当的技巧和策略,我们可以发现并解决系统中的安全漏洞,降低潜在威胁。随着技术的不断发展,我们需要不断学习和适应新的挑战,以构建更安全的数字化世界。
149 0
|
11月前
|
安全 JavaScript 前端开发
代码审计——未授权访问详解
代码审计——未授权访问详解
371 0
|
12月前
|
SQL 监控 安全
发卡系统代码审计
发卡系统代码审计
|
12月前
|
SQL 安全 数据库
代码审计之DTCMS V5.0后台
代码审计之DTCMS V5.0后台
|
12月前
YzmCMS代码审计
YzmCMS代码审计
159 0
|
存储 安全 前端开发
代码审计系统 Swallow 开发回顾
做甲方安全建设,SDL是一个离不开的话题,其中就包含代码审计工作,我从最开始使用编辑器自带的查找,到使用fortify工具,再到后来又觉得fortify的扫描太慢影响审计效率,再后来就想着把fortify集成到自己的业务系统中去
124 0
|
2天前
|
云安全 运维 安全
Webshell处置最佳实践
适用场景在云安全中心告警中主机上检出Webshell时,如何处置,以及通过信息简要分析入侵途径。Web场景实战一、确认Webshell事件Webshell根据功能和大小,主要分为两类,一类是小马,一类是大马。Web小马主要以一句话木马居多,一句话木马一般是以执行代码的函数+可以自定义内容参数为主,黑...
116 0
Webshell处置最佳实践