一、概要
由于ova文件vmware打开异常,懒得改了也,所以这里攻击机用的vmware,靶机用的virtualbox
两台机子的网络都是用的桥接模式
靶机:192.168.1.101
攻击机:192.168.1.109
难度:中级
靶机下载地址:https://download.vulnhub.com/webmachine/Web-Machine-N7.ova
二、主机发现
netdiscover扫描网段内主机
arp-scan指定网卡扫描
三、信息收集
nmap简单扫一下端口情况
只有一个80端口是开着的
四、目录扫描
dirb扫描
没扫出来什么东西
dirsearch扫描
使用方法
-u 指定扫描的url地址
-e 包含的文件后缀(逗号分隔)
-X 排除的文件后缀名
-w 自定义字典
-i 保留的状态码
-x 排除的状态码
-s 每次请求间隔的时间
-m HTTP请求方法
-d HTTP请求数据
-t 线程数
-r 递归爆破
-H 请求头
-F 跟随HTTP跳转
--user-agent 设置user-agent字段
--cookie 设置cookie
dirbuster扫描
直接在终端输入dirbuster就会弹出来了
它是一个可视化窗口的工具,但是速度着实有点慢,不过它的字典很好,结果也很直观
这里直接就爆破出来了目标文件
gobuster扫描
使用方法
dir 经典的目录暴力破解模式
dns DNS 子域暴力破解模式
s3 枚举打开的 S3 存储桶并查找存在和存储桶列表
vhost 虚拟主机暴力破解模式
-u 指定爆破地址
-w 指定爆破使用的字典
-t 指定超时时间
-x 指定爆破的后缀
gobuster dir -u http://192.168.1.101 -w '字典' -x php,txt,html
本来是可以用-s筛选指定的状态码的,但是我这里这个版本问题应该是,没有这个参数
这里发现了exploit.html文件,用的是御剑的字典,不得不说,御剑yyds
查看一下exploit.html页面
看上去是一个上传页面
漏洞利用——文件上传
随便上传一个文件,会跳转到本地
上传的地址在前端页面写着,前端页面修改一下上传的地址为靶机地址
上传成功后会返回flag的前半段,这里没有路径,所以不能用一句话木马连后台
参考网上大佬的WP,有位大佬扫到了一个enter_network目录
简单用dirb扫一下
两个目录
index.php
admin.php
五、完整flag
1、利用cookie
查看数据包发现
role的值解码一下
最后的应该是md5加密
根据上面页面的提示,这个页面应该是仅限管理员查看,但是这里命名role的值就是admin
修改role的值为明文的admin
访问成功,得到后半截的flag
不太靠谱,不确定中间是否还有没有其他的内容
2、利用sql注入
index.php的页面是一个登陆框,那么这里就可以尝试sql注入
将数据包保存到一个txt文件中,用于sqlmap爆破
sqlmap -r 1.txt --random-agent --current-db --batch
爆破出来当前数据库为Machine
爆破一下表名
sqlmap -r 1.txt --random-agent -D Machine --tables --batch
爆破出来当前数据库中的表只有一个login表
爆破一下字段内容
sqlmap -r 1.txt --random-agent -D Machine -T login --dump --batch
得到字段内容
密码部分就是flag
这样就得到了完整的flag,对比之下发现前面根据cookie得到的flag并不是完整的
总结
整体考察的几乎都是web知识,并没有涉及到反弹shell和提权之类的知识,关键就是看字典的利用和字典的强大性,字典没有的话,根本扫不出来
感觉之所以归为中等难度并非考察的知识点有多难,而是思维扩散性,如果像前面利用cookie的方式得到前后flag后就直接提交的话,这个分就没了,它并不完整
渗透涉及的知识都是常用的知识,容易忽略一些东西,尤其是像做题这种还是得保持严谨的思维