记一次某SRC信息管理系统多个漏洞组合Getshell

admin 2025年1月13日19:06:14评论13 views字数 2776阅读9分15秒阅读模式

0x01 前言

       记一次某SRC信息管理系统多个漏洞组合Getshell,并已提交至 SRC 平台修复。过程包括发现未授权访问漏洞、利用 SQL 注入获取邮箱账号、爆破弱口令登录后台、利用目录遍历漏洞找到上传路径,并通过条件竞争成功绕过黑名单上传 webshell 实现 getshell

末尾可领取挖洞资料文件

0x02 漏洞发现

首先通过子域名收集到招录信息管理系统,打开登录页面

https://zlxt.xxx.xxx

记一次某SRC信息管理系统多个漏洞组合Getshell

通过谷歌hacking语法搜索网站,成功利用谷歌发现搜索引擎爬取到的历年数据页面并且可以未授权访问

记一次某SRC信息管理系统多个漏洞组合Getshell

https://zlxt.xxx.xxx/school/recuit/index/#/historical-data?key=rrxgTw%3D%3D&school_id=5374

记一次某SRC信息管理系统多个漏洞组合Getshell

访问页面尝试点击功能点抓包测试注入点

POST /school/recuit/config HTTP/1.1Host: zlxt.xxx.xxxCookie: CNZZDATA1278742331=458302413-1660035428-https%253A%252F%252Fzlxt.xxx.xxx%252F%7C1660035428; gr_user_id=6c79cc7c-c8d8-4fa8-b251-e952713f19b8; email=37192588@qq.com; uid=undefined; schoolname=%u4E91%u5357%u8D22%u7ECF%u5927%u5B66; schoolId=5374; province=53; provinceName=%u4E91%u5357; year=2022; years=%5B%222022%22%2C%222021%22%2C%222020%22%5D; active_key=undefined; hide_type=undefined; h5Logo=; campus_id=0; PHPSESSID=shchmtd9um97dlh2b4hqes4j65; ci_session=l60a1vrs7u0q0bl2epb7alef0ll5j4qqUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0Accept: */*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: https://zlxt.xxx.xxx/school/recuit/index/Content-Type: application/jsonContent-Length: 103Origin: https://zlxt.xxx.xxxSec-Fetch-Dest: emptySec-Fetch-Mode: corsSec-Fetch-Site: same-originTe: trailersConnection: close{"key":"rrxgTw%3D%3D","school_id":"5374","year":"注入点*","type":"2"}

记一次某SRC信息管理系统多个漏洞组合Getshell

通过观察发现原语句为

SELECT `province` FROM school_students_2024' WHERE `school_id` = '5374' GROUP BY `province` ORDER BY `id` DESC

注入点发生在表名这里school_students_2024',那么尝试闭合,经过大量测试发现;可以闭合后面的语句,那么语句变为

SELECT `province` FROM school_students_2024 WHERE `school_id` = '5374';WHERE `school_id` = '5374' GROUP BY `province` ORDER BY `id` DESC

闭合成功以后,那么我们的payload就应该在”5374“之后,“;”之前,payload 为and 1=1返回数据正常,payload 为and 1=2返回数据不正常,通过这里可以发现此处可以用布尔盲注

记一次某SRC信息管理系统多个漏洞组合Getshell

直接上sqlmap一把梭

记一次某SRC信息管理系统多个漏洞组合Getshell

通过测试发现该处注入点无法获取os-shell,因为mysql数据库版本>=5.6,默认不允许导入导出数据,故放弃注入getshell,通过注入成功拿到数据库中的邮箱账号[email protected]和密码hash,但是由于存在salt值,所以无法解密出来,故放弃。

前面观察到登录名为邮箱,此时我的思路为通过获取到的email去爆破登录框,从后台入手

记一次某SRC信息管理系统多个漏洞组合Getshell

先输入账号密码和验证码抓包,通过测试发现验证码在有效期内可重复使用,再观察发现密码为数字密码两种组成,可以尝试爆破。使用burp爆破,注意密码需要使用md5规则,字典选择数字加密码的组合,成功跑出超级管理员的密码

记一次某SRC信息管理系统多个漏洞组合Getshell

记一次某SRC信息管理系统多个漏洞组合Getshell

成功在验证码有效期跑出密码,hash值解密出来为弱口令1111111a 使用[email protected]和密码111111a成功登录系统,且权限为超级管理员

记一次某SRC信息管理系统多个漏洞组合Getshell

在其他功能点上发下文件上传

记一次某SRC信息管理系统多个漏洞组合Getshell

通过抓包测试,并且输入后缀名php1成功上传,发现上传为黑名单限制。

记一次某SRC信息管理系统多个漏洞组合Getshell

但是发现未返回准确路径,需要先尝试fuzz路径,ctrl+u查看源码图片路径

记一次某SRC信息管理系统多个漏洞组合Getshell

发现一处图片路径/app/static/imgs/el_box_img.png

尝试访问发现/app路径存在目录遍历

记一次某SRC信息管理系统多个漏洞组合Getshell

经过翻找,发现/app/upload/img/xxx/5374/为最终上传目录点

记一次某SRC信息管理系统多个漏洞组合Getshell

fuzz绕过后缀,但是经过查找burp未发现成功上传返回200状态码的后缀

记一次某SRC信息管理系统多个漏洞组合Getshell

经过大量测试发现文件名和内容都未做限制,突破点就在发包频率上面,由于是黑盒测试,这里感觉像条件竞争的漏洞,因为只要在上传内容设置一个变量,并且通过burp爆破就能成功上传php文件,这里尝试打个phpinfo看看,先设置burp为如下:

记一次某SRC信息管理系统多个漏洞组合Getshell

记一次某SRC信息管理系统多个漏洞组合Getshell

成功打出phpinfo(),查看禁用函数几乎没做任何限制,那么把phpinfo()换成一句话尝试

phpinfo url :https://zlxt.xxx.xxx/app/upload/img/2024/5374/63513d946b2e55_1666268564_4966.php

使用蚁剑连接,Getshell成功,但是发现shell不稳定,最后上了一个哥斯拉马

记一次某SRC信息管理系统多个漏洞组合Getshell

记一次某SRC信息管理系统多个漏洞组合Getshell

0x03 总结

  最后总结,挖洞还是得细心分析功能点,fuzz也很重要,最终成功获得网站控制权限。喜欢的师傅可以点赞转发支持一下谢谢!

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

发表评论

匿名网友 填写信息