pwnlab-init靶机测试笔记

Vulnhub-pwnlab-init靶机地址

Netdiscover 找到靶机地址,nmap扫描

dirserach扫描先

访问链接,注意到有=号,page=login可能对应着包含login.php文件

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

先尝试读取login.php
/?page=php://filter/read=convert.base64-encode/resource=login

解码后得

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

尝试使用密码登陆ssh和mysql
发现22没端口没开 遍历所有端口看是不是开在了大端口

仍未发现 好吧 尝试mysql

找到了用户密码,登陆后自动跳转到了上传页面,可以传马了

传php马会报错格式限制,

查看upload文件

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

Index.php包含了一个文件,而这个文件我们可控
先上传一个图片马

接着在cookie处添加lang变量访问index.php,

Shell来了

提权:
看到home下有4个目录,各自权限都是自己 。看到底下三是数据库里显示的那三个

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

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

kent空的

kent竟然不对。。

kane有东西

msgmike文件是个可执行文件,调用了cat命令,并且存在setuid setgid !

那么我们可以将cat命令替换成bash,就可以获取msgmike所属的mike权限了

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

来到mike的home目录 ,又来了个msg2root

执行msg2root后仍然是将输入变输出,但是尝试id后发现输出是会被执行的,但是一直是本地执行

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

输入1;bash -p ,使用分割符绕过并执行命令。

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

posted @ 2020-08-10 14:43  总得前行  阅读(1017)  评论(0编辑  收藏  举报