Mercury通关小笔记
扫描靶机查看开放了哪些端口
开放了8080端口,通过Web浏览器访问其8080端口,
页面上什么都没有,用dirb扫描出来的robots.txt页面也没有什么有用的信息,但是当URL填写的时候发生错误的时候,例如
则会有一个报错提醒的页面,其中有三个目录,包含了一个隐藏起来的目录,也就是mercuryfacts/目录,访问其目录,
有两个超链接地址可以选择,选择第一个,
发现URL中含有数字,随机改动数字发现页面也随着变化,然后访问第二个页面
页面的内容可以给我们两个信息,用户表和MySQL数据库,第一时间想到的就是SQL注入,但是注入点在哪里?没有GEt和POST传参的地方,那么极有可能就是第一个页面.
我们将第一个页面配合着sqlmap进行sql注入去尝试一下
sqlmap "http://172.16.101.250:8080/mercuryfacts/1/" --batch --dbs --level=3
然后发sqlmap成功跑出来了两个数据库,
然后继续跑mercury数据库
sqlmap -u "http://172.16.101.250:8080/mercuryfacts/1/" --batch -D mercury --tables --level=3
然后跑出来了两个表,然后就跑users表中的内容
sqlmap -u " http://172.16.101.250:8080/mercuryfacts/1/" --batch -D mercury -T users --dump --batch
成功跑出来了四个用户,然后我们一次用这四个用户名和密码进行ssh连接
发现只有最后一个webmaster是可以成功连接的,成功进入靶机之后,进入home目录,发现有三个用户,一个Linuxmaster一个mercury和webmaster,我们以及取得webmaster的密码还差Linuxmaster和mercury没有找到,然后在webmaster的家目录下mercury_proj的notes.txt中找到了Linuxmaster用户经过base64编码的密码,
解密为:mercurymeandiameteris4880km
webmaster用户没有sudo权限所以我们切换至linuxmaster用户,发现用户对/bin/check_syslog.sh文件存在sudo权限,check_syslog.sh文件内容为
然后环境变量提权
ln -s /bin/vi tail
export PATH=.:$PATH
sudo -u root --preserve-env=PATH /usr/bin/check_syslog.sh
即可成功提权为root用户