靶机下载地址: https://www.vulnhub.com/entry/web-machine-n7,756/
教程链接地址: https://www.cnblogs.com/wthuskyblog/p/16027946.html
# 确认攻击目标
攻击机 KALI: 192.168.31.135
靶机 WEBMACHINE:桥接于 192.168.31.1 的网卡,ip 未知
1)arp 确定靶机地址
sudo arp-scan -l

-> 目标机器的 ip 地址: 192.168.31.98
- 确认靶机 ip 开放的端口信息
sudo nmap -A -p- 192.168.31.98

-> 靶机开放端口 80
# 网站信息收集
打开 http://192.168.31.109/ 进行信息收集,一个欢迎界面,审查源代码没有什么新发现,先对目标网站进行目录扫描

扫描目录 dirserch -u http://192.168.31.98/

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.31.98/enter_network -x php,txt,html,zip,rar

-> 识别到了一个敏感目录: http://192.168.31.98/exploit.html

发现一个文件上传漏洞的页面,审查源代码

文件上传后,页面会跳转到 http://127.0.0.1/profile.php
# 伪造 html 界面
伪造一个 html 界面,改变跳转的链接如下,使上传文件的地址到:http://192.168.31.98/profile.php
开启本地的 python 简易服务器

# 文件上传漏洞
登陆伪造的 html 界面,点击上传文件

将 kali 自带的 php 反弹 shell 代码修改 ip 和端口号

点击选择文件,讲 shell.php 文件上传到目标网站
上传完成之后,页面重定向到了 http://192.168.31.98/profile.php

-> 得到了一半的 flag
目前得到的信息再无可利用的可能,需要更多的信息,但是不管加载多大的字典,都没有扫出来新的目录,通过查相关教程,发现这里隐藏了一个 enter_network 的目录

-> http://192.168.31.98/enter_network
# 单点登录测试

注意到这是一个单点登录的地方,可能存在 sql 注入,也有可能会有 xss 漏洞,弱口令登陆等漏洞,这里简单尝试了一下没有发现有弱口令,尝试对这个目录再次进行目录扫描

-> 扫描一个重要的目录: http://192.168.31.98/enter_network/admin.php
# 修改 cookie 登陆后台
但是此页面只是 admin 的入口,查看网页是否存储了 cookie 的信息

看到这里的角色是一串加密数据,是 base64 加密,其中 %253D 相当于 =

role 解密后的数据是采用的 md5 加密,继续用 cmd5.com 解密

user 解密后的数据仍然是一个更加复杂的加密方式,这个加密暂时无法破解
-> role 解密后的数据最终显示为 admin, 修改存储在 cookie 中的值为 admin
再次访问 http://192.168.31.98/enter_network/admin.php

-> 于此,便得到了另外一半的 flag 的值
# sqlmap 指定数据包
http://192.168.31.98/enter_network
这个页面是可能产生 sql 注入的,通过 burp 抓取数据包,讲数据包保存到本地文件 sqlmap.txt 如下
sqlmap -r sqlmap.txt --batch --dbs

找到有四个数据库名
# sqlmap 测试数据库
sqlmap -r sqlmap.txt --batch -D Machine --tables

Machine 数据库中有 login 的表
sqlmap -r sqlmap.txt --batch -D Machine -T login --columns

login 表下有 username,password,role 三个列
sqlmap -r sqlmap.txt --batch -D Machine -T login -C username,password,role --dump

三个列里边分别有下面三个字段,同时也拿到了 flag
尝试反弹 shell,通过 os-shell 失败,没有可写入的文件,但是可以通过下面的命令直接调用出 sql 语句,进行查表
sqlmap -r sqlmap.txt --sql-shell

-> 靶机结束