WordpPress ThemeREX Addons 插件安全漏洞深度分析
ThemeREX是一家专门出售商业WordPress主题的公司。ThemeREX Addons插件为ThemeREX公司开发的预装在所有ThemeREX商业主题中用来帮助其用户设置新站点和控制不同的主题的一款插件。根据相关预测,该插件预装在超过44000个网站上。
0x01 漏洞描述WordPress ThemeREX Addons 2020-03-09之前版本中存在安全漏洞。未经授权的攻击者可利用该漏洞在后台添加一个管理员账号、或是查看所有账号信息等操作。
0x02 漏洞分析根据相关披露,漏洞应该存在于plugin.rest-api.php文件中
我们首先来看一下\wp-content\plugins\trx_addons\includes\plugin.rest-api.php文件中的代码
位于该文件40行处,存在一处trx_addons_rest_get_sc_layout方法,如下图
在该方法中,存在一处明显的漏洞点,见下图代码块
接下来我们根据这段代码详细分析下。我们首先来观察一下下图53行红框处
位于上图红框处,可见程序从请求中直接获得参数,并将请求中的参数键值 ...
阿里白帽大会留念
阿里白帽大会留念
Struts2从请求到Action——反射机制研究
本文不是对Struts2漏洞进行分析,而是对Struts2框架机制的一些简单的理解。这将有助于对Struts2漏洞进行深入的理解。
正文Struts2历史上出现过大大小小几十个漏洞。在分析漏洞的时候,除了需要理解漏洞是如何触发的,我对Struts2框架的原理比较好奇。众所周知,Struts2是通过配置struts.xml来定义请求和处理该请求的Action之间的对应关系等等。
Struts.xml类似下图这样的形式
其中一个问题就是,Struts2是如何将请求和处理action通过struts.xml关联起来的?
其中的过程比较有意思,本文将简单针对这个机制的分析一下
Struts2官网给出的执行流程图如下
在上图红框处,可见ActionInvocation模块,这一模块将调用拦截器并执行开发者编写的Action。ActionInvocation模块正是解答我们问题的关键之处,后文将从这里开始分析。
在分析流程之前,首先要说明一下:在Struts2框架中,程序将请求和处理action通过struts.xml关联起来的过程是基于java的反射机制实现的。
Java反射机制关于ja ...
2020 ,2020!
天上白玉京,十二楼五城。仙人抚我顶,结发受长生。勿逐世间乐,颇穷理乱情。天地赌一掷,将期轩冕荣。
记于2019年12月31日,2019年最后一个晚上。
某CMS后台远程代码执行漏洞
在审计某CMS代码时,发现后台存在一处比较有意思的远程代码执行漏洞,这里跟大家分享下
漏洞分析漏洞触发点位于下图代码段中
见上图803行处,存在一处fwrite方法:
程序会将修改日志$log变量中的值保存到’/integrate_’ . $_SESSION[‘code’] .’_log.php’文件中
接下来看一下$log变量是如何拼接的:
$log变量是由如下一个或多个变量控制:$del_list、$rename_list以及$ignore_list
当这个三个变量存在时,则将其值拼接到$log变量中
这里着重看一下$ignore_list变量,分析代码可以发现,$ignore_list变量由下述代码中赋值得来
由上图代码可见$ignore_list变量由数据库中users表user_name数据组成。其实$ignore_list就是users表中flag等于4的所有user_name字段组成的列表
见上图,当请求中act参数值为sync时,并且当users表中存在flag=4的行时,触发此处$ignore_list赋值操作,将users表中flag等于4的所有行的use ...
Python中有潜在代码执行风险的函数(一)
在Python中一些函数存在着任意代码执行的隐患,错误的使用这些方法将会导致漏洞的产生,攻击者可能会利用这些安全隐患进行攻击。
文中的知识点并非新知识,但我会围绕着基础点比较细致的分析漏洞的成因、防范以及绕过,希望对大家有帮助
第一组首先介绍下python中常见的存在任意代码执行隐患的方法:eval与exec
简介在python中,eval和exec的用法极其相似。eval和exec都可以将传入的字符串执行,但两者又有不同之处:
evaleval是一个python内置函数,语法为eval(expression, globals=None,locals=None)
eval函数接收三个参数:其中 expression参数是用做运算的字符串类型表达式;globals参数用于指定运行时的全局命名空间;Locals参数用于指定运行时的局部命名空间。globals与 locals 是可选参数,默认值是 None,他们只在运算时起作用,运算后则销毁。
exec在Python2中exec是一个内置语句(statement)而不是一个函数,但是到了Python3中exec将Python2中作为内置 ...
OkayCMS 2.3.4 反序列化漏洞(CVE-2019-16885)
OKAYCMS是一款来自俄罗斯的功能强大的在线商店管理系统。OKAYCMS易于定制的多种语言自适应模板可用于销售任何商品:从服装、建筑材料、手机到音乐曲目,视频课程,有声读物和海报等。
在OKAYCMS v2.3.4中存在着一处反序列化漏洞。未经身份验证的攻击者可以通过此处漏洞进行进一步的攻击利用。
漏洞细节漏洞位置存在于view/ProductsView.php与api/Comparison.php代码中,可以通过Cookie传入序列化代码进行利用
首先来看下第一处,即位于view/ProductsView.php 516行处代码
可见位于上图代码中存在一处unserialize方法,此处unserialize位于ProductsView.php中fetch方法中,此处代码将cookie中传入的price_filter参数未经过滤,直接反序列化,从而产生了漏洞
更加严重的是:由于ProductsView.php并未对fetch方法进行身份校验,未经身份验证的用户可以将恶意的cookie传递到此处执行
我们构造如下get请求,将恶意字符串”test”通过cookie中price_ ...
Intigriti 10k followers XSS challenge题解
前些日子Intigriti出了一道关于XSS的题目。目前比赛已经结束了,但是仍可以通过下面地址体验一下:https://challenge.intigriti.io
题目很简单,就是从上图中的代码中找到xss漏洞,即可获胜
分析分析一下这段代码,为了方便测试,我把这个xss挑战代码放到了我本地http://127.0.0.1/xssctf/index.html地址
首先在第二行处有个一个白名单,如下图红框处
Whitelist中定义了两个域名,’intigriti.com’与’intigriti.io’。这个白名单在下文代码中会用到
接着通过location.hash.substr(1)取出字符串,并生成一个URL对象赋给url变量
window.location.hash获取url中的锚点,简单来说就是url中#号以及#号后的部分
例如访问:http://127.0.0.1/xssctf/hash.html#hashtest
hash.html代码如下
控制台输出如下
值得注意的是:锚点中的内容仅供浏览器定位资源,并不会随着请求发送给目标服务器的
注意下图,请求中并不包含锚 ...
WordPress Crelly Slider插件从任意文件上传到RCE
WordPress Crelly Slider是一个开源的幻灯片插件。用户可以使用强大的拖放生成器来添加文本、图像、youtube/vimeo视频,并为每个视频制作动画。
WordPress Crelly Slider插件具有20,000多个活动安装。该插件在1.3.4及更低版本中出现任意文件上传漏洞。任意经过身份验证的用户(例如订阅者身份)可通过向wp_ajax_crellyslider_importSlider发送带有恶意PHP文件的ZIP压缩文件来利用该漏洞上传文件并将恶意PHP文件解压到插件目录中。
漏洞分析在crelly-slider\crellyslider.php文件中,存在如下代码
位于上图45行处可见,插件使用if(is_admin())进行判断,满足条件则可以进入上图if分支,并且在58行处将wordpress/ajax.php文件包含进来
接着来分析下ajax.php文件
在crelly-slider/wordpress/ajax.php中存在如下代码
可见上图520行处注册了一个名为wp_ajax_crellyslider_importSlider ...
从FlexPaper 2.3.7 安全更新入手反推漏洞
FlexPaper是一个开源轻量级的在浏览器上显示各种文档的项目。它为Web客户端、移动设备和平板设备提供了文档查看功能。FlexPaper使在Flex中显示PDF成为可能。这个过程无需PDF软件环境的支持。它可以被当做Flex的库来使用。
另外使用者也可以通过将一些例如Word、PPT等文档转成PDF,然后实现在线浏览。
FlexPaper发布了2.3.7版本,此版本是一个安全维护更新版本。该版本中修复了wordpress-redtimmysec团队发现的一处无需身份验证的RCE漏洞以及两处未公开的xss漏洞
漏洞分析我们首先通过diff2.3.6版本与2.3.7版本,查看下修改的文件
可见一共有7个php文件被修改。经过分析,除去mudraw_php5.php与view.php,其余5个都是安全更新。
这些更新可以分为主要用来修复三个漏洞,具体见下文
任意文件删除导致的rcephp\change_config.php存在如下更新
在change_config.php中,7-11行新增了一个权限校验模块,19-22行新增了一个setup.php文件存在性的判断
在46-47 ...