百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
B

bypass_disablefunc_via_LD_PRELOAD

> 编程语言
开源

通过 LD_PRELOAD 禁用 disable_functions (不需要 /usr/sbin/sendmail)

1.2K stars0 点赞2 次浏览
访问官网GitHub

工具介绍

通过 LD_PRELOAD 禁用 disable_functions (不需要 /usr/sbin/sendmail)

抱歉,红队又赢了 agaaaain。我知道,你通过 php.ini 中定义的 PHP 目录,禁用了所有危险的函数,例如 system()、exec() 或 shell_exec() 以及更少人知的函数,如 dl()。

大家都知道,Unix 类系统会设置 LD_PRELOAD 变量,以在其他程序之前预加载共享对象 (*.so)。因此,我希望能够在应用程序中注入一些代码。在 PHP 中,mail() 函数会在内部启动 /usr/sbin/sendmail,而 script kiddy 会在 sendmail 中钩入一些系统 API(如 getuid()),以注入恶意代码。这并不是坏事,但是如果 bluuuue 团队卸载 sendmail 工具,那么,你会说什么呢?别担心,我已经找到了一个新方法,无论 sendmail 是否存在,红队总是可以通过 LD_PRELOAD 绕过 disable_functions。

bypass_disablefunc.php 有三个 GET 选项: cmd, outpath 和 sopath。这些选项都很简单,cmd 是你的恶意命令,outpath 是命令输出文件的路径(可读可写),sopath 是我们的共享对象 bypass_disablefunc_x64.so 的绝对路径。例如:

http://site.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so

顺便说一句, bypass_disablefunc.php 可以绕过常见的防止 Web 后门的工具, 逃避 总是有好处的。因此, bypass_disablefunc.php 在任何环境中都是你的好帮手。 祝您愉快的黑客活动! 千辛万苦获得的 webshell 竟然无法执行系统命令: 怀疑服务器 disable_functions 禁用了命令执行函数,果然如此: 通过环境变量 LD_PRELOAD 绕过系统函数,目标根本没有安装 sendmail: 无法执行命令的 webshell 是毫无意义的,必须被突破!

一般来说,利用漏洞控制 Web 启动新进程 a.bin(即使进程名无法任意指定),a.bin 内部调用系统函数 b(),b() 位于系统共享对象 c.so 中,因此系统会为该进程加载共享对象 c.so,想法是在 c.so 前优先加载可控的 c_evil.so,c_evil.so 中包含与 b() 同名的恶意函数,由于 c_evil.so 优先级较高,因此,a.bin 将调用到 c_evil.so 中的 b(),而不是系统的 c.so 中的 b(),同时,c_evil.so 可控,从而达到执行恶意代码的目的。基于这一思路,常见的突破 disable_functions 限制执行操作系统命令的方式包括:

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言