记第一次edu-src漏洞挖掘
第一次挖到edu-src的漏洞(一直很羡慕别的师傅可以挖到现实生活中的漏洞、拿到证书!!都快羡慕死了),非常激动开心啦!!!达成了从0到1!!!还是武汉大学的漏洞啦!(选择武汉大学的原因是因为挺多好朋友在武汉大学的):
先用fofa搜索武汉大学相关站点,找到比较偏僻的一个站点,这里用http://example.com来替代
然后开始渗透测试!!,先尝试了admin:123456登录发现失败,然后开始尝试弱口令密码登录,发现次数变多后就不行了,于是又检查很多很多(指在网站漫无目的的闲逛摆烂),然后还是不行:sob:,然后用dirsearch开扫了一下(下次注意不能扫太暴力,要不自己容易被封,就被封了一个IP,后面改成热点才好一点),
发现了以下有效路径:
1 | 200 3KB http://example.com/.htaccess |
然后发现了.htaccess、robots.txt、crossdomain.xml等信息泄露路径,然后当时到太晚了,就把这个当信息泄露提交了(想着水一下第一个洞),结果果然失败了,给了一个这样的评价:审核评价: 无明显敏感内容或进一步利用证明,危害不足。
果然摸鱼混漏洞的想法是不正确的哈,还是要认认真真挖一些有价值的漏洞呀
过两天又重振旗鼓开始挖掘该域名,然而在一阵挖掘后,并没有发现半点的惊喜。于是小陈师傅(fw)准备关闭浏览器然后下班,可是就在最后一个浏览页的界面,突然发现到了一些奇怪的东西,在http://example.com/app_dev.php的下面竟然有一个调试窗口,我很懵逼不知道这个是干什么的,点开之后是这样(因为原有网站已被关闭,所以从网上找了一些其他类似的图)
从这里我拿到了phpinfo的所有值,连忙把这个东西提交了,提交为信息泄露,可是却得到了这样的评价:审核评价: 无明显敏感内容或进一步利用证明,危害不足。
怎么中国edu-src拿个漏洞这么严!!!phpinfo都不算信息泄露
然后我发现了这篇博客,这里吐槽一下:国外的优质博客是真的多,可惜有的时候比较急的时候要用翻译,不急的情况下感觉可以慢慢看、垃圾的英语水平!!然后我在这篇博客下学到这个利用方式:
1 | 我找到了Symfony 3.4版本数据库默认配置文件位置,即***app/config/parameters.yml\*** |
于是我打开这个网址/app_dev.php/_profiler/open?file=app/config/parameters.yml
然后GET到了一些数据库的账号密码、还有一些其他的东西,大概如下这样:
然后赶紧把这个信息泄露提交了(当时我的想法是:不敢仔细看这个数据,感觉能得到一个中等的rank),然后就把这个漏洞提交了,然而只拿到了rank2,然后也很激动的发了pyq、
我很不服于只有rank2:sob:,于是问了教育平台的管理员莫言这个漏洞怎么只有rank2,感觉泄露了很多关键的账号密码信息、然后得到了回复:不能利用的文件,只有这个分数,你要证明这个文件可以利用!!!:sob:,原本其实自己也在打马虎眼,想着有了账号密码就可以摆烂了!!!随便水水报告就行了,谁知道还要去证明其可以利用:然后就开始了小陈师傅的利用之旅
我先看到了几个端口的开放情况,发现关键的端口都是被封闭的!!!怎么把路给我封死了啊!然后我注意到一个点:里面有一个secret字段在 secret: ThisTokenIsNotSoSecretChangeIt
我原本一直以为这是数据库的认证方式,比如密钥什么的。然后我就开始了新的google搜索!!!然后我发现了宝藏
在我搜索symfony secret 的利用然后弹出来下面这个网站:
https://book.hacktricks.xyz/v/cn/network-services-pentesting/pentesting-web/symphony/~/comments
一开始一看全黑,还懒得看,还好我看了
然后我点开第一个博客,然后我发现了这一个是宝藏
可惜他是全英的,我只能把他翻译了然后去看,然后我注意到这个框架用于/_fragment
运行任意代码,而且是基于secret,我当时还没把这个secret和我的secret联想起来,直到我看到这个
他妈的,这个secret跟我的secret不是刚好的一样吗,妈的
然后我扫到了这个,我当时还在php中的环境中找secret,殊不知secret已经被我获取了
然后思路就豁然开朗了!我拿到secret就可以用这个文章所运用的方法来实现RCE了,实现成功的时候激动的手在颤抖
下面是文章中的例子,这里localhost:8000是例子中的域名,50c8215b436ebfcc1d568effb624a40e是secret
通过检查http://localhost:8000/_fragment?_hash=lNweS5nNP8QCtMqyqrW8HIl4j9JXIfscGeRm/cmFOh8=
,我们现在有了一个404
状态代码。签名是正确的,但我们没有指定任何请求属性,因此 Symfony 找不到我们的控制器。
由于我们可以使用任何参数调用任何方法,因此我们可以例如 pick system($command, $return_value)
,并提供如下所示的有效负载:
1 | $ page="http://localhost:8000/_fragment?_path=_controller%3Dsystem%26command%3Did%26return_value%3Dnull" |
我们现在可以访问漏洞利用 URL:http://localhost:8000/_fragment?_path=_controller%3Dsystem%26command%3Did%26return_value%3Dnull&_hash=GFhQ4Hr1LIA8mO1M/qSfwQaSM8xQj35vPhyrF3hvQyI=
然后我们会发现我们的命令被成功执行了:
发现这个漏洞让我特别兴奋,人生中的第一个RCE漏洞,赶紧提交了然后发了pyq、感觉非常兴奋,当天晚上熬了很久,但是很奇怪,过了一段时间后这个网站就貌似被关了,然后一直也打不开,我的想法是因为我提交的第一个信息泄露的漏洞让作者关闭了网站。
但是在我焦急的几天等待后,我发现我提交的这个漏洞被通过了,长舒一口气,感觉可能是审核者在网站没有关的时候成功复现了我的这个漏洞。于是给我了同意,但是为什么这么晚才同意啊,这几天快吓死我了,还在想着怎么跟踪这个网站blabla,总归是有惊无险的拿下了RCE(注意以后挖洞也注意法律,不要违背法律的界限)、也终究是走出了现实生活中挖洞的第一步、、cyy以后加油
可惜忘把图标下载下来了,要不感觉可以批量刷一下:sob: