o2oa的任意文件读取
权当笔记
代码分析:
在
\src\main\java\com\x\xxx\xxx\jaxrs\config\ConfigAction.java的open方法中new了一个ActionOpen
对象的execute
方法来处理请求
在该方法里
com/x/xxx/xxx/jaxrs/config/ActionOpen.java
先从参数filename处获取文件名
文件名直接拼接到config/
后面,然后使用Config
的base()
方法获取绝对路径,此处是漏洞产生的关键点
此时file的值为C:\web\config\filename
接下来判断file是否存在,如果存在就会用到工具类FileUtils
的readFileToString
方法直接读取文件
由于filename参数可控,所以可以利用../
来跨目录访问文件
最后返回包含文件内容的结果
漏洞验证:
根据路由构造路径
/xxx/jaxrs/config/open
根据代码
构造json格式的参数
1 |
|
2021/11/30更新:
6.4.4还是存在
可以直接请求
1 |
|
运气好的话说明账号密码是默认的,直接读取,也可以登录后台getshell,如果文件不存在会提示
1 |
|
需要登录的话提示的是过期重新登录
声明:
本文章用于学习交流,严禁用于非法操作,出现后果一切自行承担,阅读此文章表示你已同意本声明。
Disclaimer:
This article is for study and communication. It is strictly forbidden to use it for illegal operations. All consequences shall be borne by yourself. Reading this article means that you have agreed to this statement.