本文结合其它用户案例分析讲解挖掘某双一流站点的过程,包含日志泄露漏洞深入利用失败,到不弱的弱口令字典进入后台,再到最后偶遇一个貌似只在靶场遇到过的高危漏洞。
信息搜集:
web站点的话从域名,ip等入手范围太大了,于是决定直接从小程序入手。
微信搜索学校名称,便直接可以通过公众号,小程序寻找目标。这里注意如果你要挖掘某edu的漏洞,就可以多关注他们的公众号,小程序,看看最近有没有什么新的功能出现,这种功能点漏洞比较容易出现。
于是我直接在某公众号发现了一个新功能:报名入口。临近毕业,所有有很多公司可能会来学校宣讲或者招人,这种时候就很有可能出现新功能,本案例就是。
照常点击功能,出现跳转,直接转浏览器测web页面。
日志泄露nday:
在登陆时发现限定了登陆时间,而目前已经不在时间内,可见这其实就是一个临时的系统。
我检查js信息尝试调试js绕过,没成功就通过报错发现为thinkphp框架,直接上工具一把梭。
链接:https://github.com/Lotus6/ThinkphpGUI
只可惜只存在一个日志泄露的nday,没能shell。
根据日志泄露目录可以发现能够遍历近一年的日志信息,此时的思路就是从日志中看能不能拿到管理员或者其它用户登陆的敏感信息,例如账号密码之类,这样就可以扩大日志泄露危害,进一步挖掘利用。
参考文章:
https://cloud.tencent.com/developer/article/1752185
这篇文章就是利用kali自带工具whatweb探测出thinkphp框架:
并通过dirb扫除.svn泄露:
再通过svnExploit工具进行下载利用:
链接:https://github.com/admintony/svnExploit
并在svn中发现大量日志泄露:
并通过找到最新的日志信息,找到密码hash值,通过cmd5实现解密并成功进入后台:
https://blog.csdn.net/qq_41781465/article/details/144092247
这篇文章也是在日志信息中成功找到账号密码,配合dirsearch扫出后台,成功登陆:
不过我这次日志信息量虽然很大,且经过我实际尝试也确实会记录我的一些操作信息,但翻遍日志却并貌似不存在敏感信息:
但我发现在日志中泄露了sql语句,貌似可以寻找对应接口,参数拼接成数据包尝试sql注入,但我找遍了日志都没有发现可以直接使用的接口或者代入了sql语句的参数。
不弱的弱口令:
翻找js文件,尝试直接拼接登陆验证接口,和其它查询接口全部失败。
不过根据找到的其它js路径发现其目录结构基本拼接在/syl/下,于是根据经验在目录后拼接admin,系统跳转到后台管理员登陆界面,输入账户为admin页面显示密码错误,输入其它账户页面显示账号不存在,可知账户为admin。
根据页面特征制作字典并加上弱口令top500的内容,尝试爆破成功:密码为页面根路径字母syl+88888888。
这种:syl88888888一看就是弱口令,但如果你只是通过现存的什么top100,top500这种字典是爆破不出来的,所以在进行渗透测试时一定还要根据页面特征,关键字,系统名称首字母等信息制作特定的社工字典尝试。
比如kali自带的cewl工具,便是一种基于爬虫,对页面目录信息进行循环爬取再生成字典的工具。
工具分析文章:https://www.cnblogs.com/jackie-lee/p/16132116.html
成功进入后台。
并发现大量信息泄露:
存在四千多条用户敏感信息泄露。
爬出靶场的高危:
通过dirsearch扫描目录,看有没有结果。
直接扫出来了好几条.git路径,直接访问泄露的路径看不出什么敏感信息。
但很明显站点存在.git信息泄露漏洞,一个我曾经只在ctf技能树复现过的漏洞。
Git就是一个开源的分布式版本控制系统,在执行gitinit初始化目录时会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等,发布代码的时候如果没有把.git这个目录删除而是直接发布到服务器上,那么攻击者就可以通过它来恢复源代码,从而造成信息泄露等一系列的安全问题。
尝试githack进行探测利用(只能python2使用)
工具链接:https://github.com/BugScanTeam/GitHack
该工具基本原理就是解析.git/index文件,找到工程中所有的文件,文件名,再去.git/objects/文件夹下下载对应的文件,并通过zlib解压文件并按原始的目录结构写入源代码
结果我直接把整个git扒了下来,得到站点整套源码,于是通过vscode打开分析:
随意翻找文件,找到mysql数据库账号密码,于是扫描端口发现开启3306,尝试连接,发现似乎做了IP白名单限制,于是放弃。
再翻找文件,发现居然直接把后台部分用户的信息写在了.sql文件内,包含姓名,身份证,电话等信息,不过只有几百条。
此处其实还可以深入对php源码进行审计,发现更多高危漏洞,但我却不会php代审,所以打到这里就收工了,觉得应该可以拿证了。
整个渗透过程很顺利,大概就两三个小时,还是信息搜集做得好,不然都不一定能出成果,同时需要多阅读漏洞挖掘文章,这样在渗透测试过程中才能对漏洞利用更加熟练。