Vulnhub-pwnlab-init靶机地址

Netdiscover 找到靶机地址,nmap扫描
pwnlab-init靶机测试笔记

dirserach扫描先
pwnlab-init靶机测试笔记

访问链接,注意到有=号,page=login可能对应着包含login.php文件
pwnlab-init靶机测试笔记

尝试包含其他文件,注意这儿文件没有跟.php 说明代码中有处理,所以一般我们包含其他文件如/etc/passwd或者其他格式文件是显示不出来的。 需要使用伪协议来操作
文件包含可以参考:https://github.com/Go0s/LFIboomCTF

先尝试读取login.php
/?page=php://filter/read=convert.base64-encode/resource=login
pwnlab-init靶机测试笔记

解码后得
pwnlab-init靶机测试笔记

可以看到,数据库账户密码在config文件中,同时这儿采用了预编译,所以注入不了
重新包含config文件后可得
pwnlab-init靶机测试笔记

尝试使用密码登陆ssh和mysql
发现22没端口没开 遍历所有端口看是不是开在了大端口
pwnlab-init靶机测试笔记

仍未发现 好吧 尝试mysql
pwnlab-init靶机测试笔记
pwnlab-init靶机测试笔记

找到了用户密码,登陆后自动跳转到了上传页面,可以传马了
pwnlab-init靶机测试笔记

传php马会报错格式限制,
pwnlab-init靶机测试笔记

查看upload文件
pwnlab-init靶机测试笔记

白名单验证后缀,保存文件时人为添加后缀,绕过不了。。
接着回到dirsearch截图,查看到还有index.php
pwnlab-init靶机测试笔记

Index.php包含了一个文件,而这个文件我们可控
先上传一个图片马
pwnlab-init靶机测试笔记

接着在cookie处添加lang变量访问index.php,
pwnlab-init靶机测试笔记

Shell来了
pwnlab-init靶机测试笔记

提权:
看到home下有4个目录,各自权限都是自己 。看到底下三是数据库里显示的那三个
pwnlab-init靶机测试笔记

尝试登陆他们账号 先切换到tty

python -c '__import__("pty").spawn("/bin/bash")'

kent空的
pwnlab-init靶机测试笔记

kent竟然不对。。

pwnlab-init靶机测试笔记

kane有东西
pwnlab-init靶机测试笔记

msgmike文件是个可执行文件,调用了cat命令,并且存在setuid setgid !
pwnlab-init靶机测试笔记

那么我们可以将cat命令替换成bash,就可以获取msgmike所属的mike权限了
pwnlab-init靶机测试笔记
pwnlab-init靶机测试笔记

已经是mike权限了,先将环境恢复
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

来到mike的home目录 ,又来了个msg2root
pwnlab-init靶机测试笔记

执行msg2root后仍然是将输入变输出,但是尝试id后发现输出是会被执行的,但是一直是本地执行
pwnlab-init靶机测试笔记

分析该程序
前面能看到这个程序把我们的输入写入到messages.txt中,后面猜测红框处是不是一条变量语句,其中先输出我们的输入,后获取messages.txt内容,然后调用system命令执行
pwnlab-init靶机测试笔记
pwnlab-init靶机测试笔记

输入1;bash -p ,使用分割符绕过并执行命令。
pwnlab-init靶机测试笔记
pwnlab-init靶机测试笔记

总结:
考察了文件包含,伪协议,替换原生命令以利用给定条件,逆向盲猜等
难度简单

相关文章:

  • 2022-01-16
  • 2021-10-26
  • 2021-10-11
  • 2021-10-29
  • 2021-04-15
  • 2021-12-21
  • 2022-12-23
  • 2021-06-23
猜你喜欢
  • 2021-08-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-13
  • 2022-02-28
  • 2021-11-13
相关资源
相似解决方案