HTB Hack The Box -- Oopsiec
信息收集
开放了22ssh,80端口,其中ssh有弱口令爆破端口
先打开网页,然后进行目录爆破,在这期间先看一下网页的大概信息
没爆到什么有用的东西,但是有uploads文件夹说明是不是说明有文件上传?
打开页面,点击所有链接发现都是跳转到当前页面,一个一个看网页上写了点什么,最后看到了loginin这个关键词,所以极大可能是有一个登陆页面,然而dirsearch却没有爆破出来,猜测登录的页面放在了某个文件夹下
查看源码,发现有login相关的关键词,路径为cdn-cgi/login
打开目录,发现自动跳转到登陆页面
登录页面的特性:
没有验证码,没有回显,没有错误次数限制,理论上是非常适合弱口令爆破的,但是应该没有字典可以爆破出来
原因是密码是和其他靶机相关,也就是账号密码都是上一个靶机的账号密码,理由是靶机之间有关联,我只能说不知有些话该不该说
admin,MEGACORP_4dm1n!!
打开后台页面,有四个可以点击的链接
其中,Account、Branding、Clients有疑似sql注入,原因是通过切换url的id值会显示不同的内容
upoloads页面猜测可以文件上传,开头时就已经猜到了,但是似乎需要super admin才拥有文件上传的权限,而我们如今登录的账号是admin
首先先来看一下sql注入的点
可以看到,通过修改brandId的值,返回了不同的内容,很难不让人想到和数据库做了交互
但是手工注入无法使其报错,甚至sqlmap也跑不出来,猜测是故意骗的,很没意思
再回来观察一下upload页面,要求要suer admin权限,看一下cookie
cookie由两个值组成
我认为决定身份的应该是由user的值决定的
经修改user值为super admin的值也验证了无法更改身份,那我们目前的目标就是为了拿到super admin的id值
攻击
这时候我们回到account这个页面,通过传递不同的id值,返回不同的用户的id值,姓名,邮箱
使用burpsuite进行爆破,从1-100,看看能爆出什么东西,设置如下
在id=30时可以爆破出来
id=86575,再返回到upload页面
先尝试上传一个正常的图片,目的是为了确定上传后图片所在的位置
正常上传,同时确定路径就是ip/uploads
接下来尝试上传后门,上传一个msf的后门,结果直接上传,没有任何限制,访问页面,成功反弹shell
机器的flag就放在/homeRobert的user.txt中,但是我想尝试一下提权
提权
在网站的cdn-cgi/db.php中有robert的用户和密码,通过ssh登录
使用id查看权限
发现robert有两个权限,搜索和bugtracker的相关信息
find / -name bugtracker 2>/dev/null
运行一下bugtracker,输入数字就会显示出一些信息,打算cat一下,发现是二进制文件
使用string输出一下可以打印的字符
结果发现软件浏览了/root/reports目录,一般来说没有root权限是看不了root目录的,说明bugtracker有root权限
然后后面就有点不懂了,不知道cat命令没有使用cat命令的绝对路径,而是使用绝对路径调用的,即在当前用户的$PATH环境变量指定的路径中搜寻cat命令
这个结论是怎么得出来的,不过如果是这样的实现文件读取的话就可以通过修改环境变量的值来让bugtracker以root权限运行我们想要的程序
将/tmp目录设置为$PATH环境变量的第一个目录,切换到/tmp目录下构造恶意cat命令并赋予执行权限。当bugtracker再次调用cat命令时实际上调用的是/tmp目录下的恶意cat命令(shell执行命令时按照PATH环境变量中目录的顺序搜索,搜索到即开始执行),此时robert用户临时具有了root权限,上面的id命令可以看出只是robert用户的uid变为了root,不是真正的root用户。