本文为打靶练习,靶场地址:https://github.com/crow821/vulntarget vulntargetI为本次实验环境
在本次渗透测试过程中,我认为Web打点部分比较有意思,内网渗透部分较为简单,不再叙述。
直接全端口扫描,看看有啥东西
结果出来并不乐观,只有两个比较有用的:80 IIS7默认页面 8000 Metinfo 7.5
对两个端口分别进行目录扫描,在8000端口发现存在adminer
在查询Adminer的利用姿势后,发现在低版本存在任意文件读取
,此时进入漏洞利用的正轨。
随便打个路径,看看404页面能不能告诉我们他是什么搭建的
新版本的PHPStudy
默认路径phpstudy_pro
,尝试读取my.ini来试探是否存在该路径
并不存在,可能是对方更改了目录名。
之后我使用了dict的方式,去探测到底这个目录被更改成了什么
我会在后文介绍一种方式,能够准确的读取到PHPStudy路径的方式,而不是像现在这样全凭运气
最终,通过爆破字典,我发现了目录被更改成了php
,于是尝试读取网站的index.php
仍然错误,可能网站的目录也被改了,很无语。
于是需要读取到网站的绝对路径,第一个想到的就是Apache的配置文件,里面会暴露网站的绝对路径,立马看看PHPStudy的Apache的配置文件在哪,并尝试读取。
c:\php\Extensions\Apache2.4.39\conf\httpd.conf
就在我以为成功的时候,现实给我泼了盆冷水,这个程序有问题,导致读取的内容不完全。
作为第二个问题点,将在后文得到解决。
没事,作为一名合格的安服仔,突出的就是一个坚持不懈。
于是我决定继续翻找,终于找到了另外一个东西,vhosts
文件夹,里面存在着这么一个文件0localhost_YOUR WEB PORT.conf
那对方是8000端口,在不考虑奇奇怪怪的场景下,对方的文件应该就是:0localhost_8000.conf
,说干咱就干!
终于读取到了,打开看看
小黑子,漏出鸡脚了吧!
下载Metinfo源码,看看数据库配置文件的路径在哪,组合并读取
OK,完美。
后续证明,它开启了MySQL的外链,于是直接Navicat连上去
其实在这里也可以直接读取MYSQL\data下的user.MYD,里面存储着MYSQL的用户名密码
可惜,这个确实解不开...
直接into outfile
写PHP马呗
但是发现对方网站目录设置了不可写,于是转战发现的80口的IIS。
按照惯性,肯定IIS的默认目录被改了,所以我直接选择读取一下IIS默认网站的绝对路径
IIS 5 C:\WINNT\system32\inetsrv\MetaBase.bin IIS 6 C:\WINDOWS\system32\inetsrv\MetaBase.xml IIS 7 C:\WINDOWS\system32\inetstr\config\applicationHost.config
右键保存数据为,全局搜索Path
似乎中文目录一直都是个大问题,这回也不例外。
先尝试写个123到目录里面:
但是访问失败了,后续发现,他会把/俱乐部/1.txt
看成一个东西,结果就写到了:c:/vulnIIS/乱七八糟1.txt
。写不进去网站的绝对路径。
于是经过我漫长的搜索,包括看了很多的什么MSSQL写中文目录问题等等...也没有解决。最终,我从Navicat本身入手,发现了问题。其实只需要修改一下连接编码即可:
再次写入就没问题了。
做项目中包括打靶也是,为了顺畅可能有些凑巧凑出来的东西,不会在项目中完善。等到结束后在慢慢研究,找到一种更为通用的方法。
在本次打点中,暴露了两个问题:
针对这两个问题,展开了一定的研究,并最终得以解决。
这里用了一个邪门
的技巧:Windows的图标缓存。
可以尝试读取这个文件(该文件默认是隐藏的)
C:\\Users\\administrator\\AppData\\Local\\IconCache.db
之后记事本打开就行(粗糙,但是很好用)
一秒就看见了。
利用BeichenDream的MYSQLT
在我本机需要管理员权限才可以运行,不知道是我的问题还是本身就需要管理员权限。
进入后输入:
set host xxx.xxx.xxx set port xxxx add file 你想要读取文件的路径 add user root root 最后输入 mysql run 就可以跑起来了
最后让Adminer向你发起连接:
读取到的就是一个完整的文件了。