内容简介:最近seacms 更新了版本,直接从6.61更新到了6.64, 小版本之间的时间间隔比较短,但是在新版本发布没有多久,已经有不少最新版本的漏洞被挖掘出,今天我们就来总结分析一下这些漏洞。后台sql注入漏洞,这个漏洞在提交cve的报告中,只列出了sqlmap的扫描结果,并没有写明漏洞产生的原因,作者在第一次溯源的时候也是因为疏忽,竟然没有找到漏洞点。
最近seacms 更新了版本,直接从6.61更新到了6.64, 小版本之间的时间间隔比较短,但是在新版本发布没有多久,已经有不少最新版本的漏洞被挖掘出,今天我们就来总结分析一下这些漏洞。
CVE-2018-16445
后台 sql 注入漏洞,这个漏洞在提交cve的报告中,只列出了sqlmap的扫描结果,并没有写明漏洞产生的原因,作者在第一次溯源的时候也是因为疏忽,竟然没有找到漏洞点。
- 相信很多童鞋在做审计的时候,phpstorm的全局搜索也是和作者一样设置的吧,默认搜索的范围是 php 文件,一些没有用的文件是不去搜索的,因为这样确实是可以加快搜索的速度和进度,不用去看很多js和css等样式文件,以及html等模板文件,但是这个漏洞呢,问题就出在了htm模板文件之中,常规做审计的过程中,还真的是容易忽略!
- 在利用cve报告中提供的payload进行注入的时候,默认会进行跳转,这样对于漏洞追踪也产生了一点困难。
基础知识
要理解这个漏洞,首先要知道一个基础的问题,就是关于php的include机制,我们来做个实验:
- 首先建立一个php文件,内容如下:
- 然后建立一个htm文件,文件内容如下:
- 然后我们运行php文件,结果如下:
- 结果中我们可以看到,htm文件中的符合php语法的部分被正确解析执行了,当然这算是一个常识,例如我们有一个情景,有一个任意文件包含漏洞,我们怎么才能getshell呢,就可以利用这个知识点,我们首先污染apache或者nginx的日志文件,然后将其包含进来,这个时候其中符合php语法的部分,就会被解析执行,从而我们就能获取webshell,这在渗透中是非常常见的思路,在ctf中也是遇到过很多次了。
漏洞分析
经过溯源,漏洞产生的位置是:/admin/templets/admin_video_main.htm的42行附近。
先看一下seacms的全局过滤以及伪全局机制:
这种防御方法有一个弱点,就是如果sql变量没有引号包围,那就相当于没有过滤,是十分危险的。
下面我们来看一下整个的漏洞逻辑部分:
乍一看,整个的处理替换逻辑十分复杂,很难通过肉眼直接看出来,这里可以用一个小技巧,我们既然知道了是sql注入漏洞,那我们可以着重看进入sql查询的过程,我们这里在其中加几个var_dump,就能很明显的看出来了:
经过简化,我们的代码可以抽象成:
然后我们就可以开始测试:
可以清楚的看到,报错注入是可以直接回显结果的,这里我们测试发现cve提交的payload有点小问题,是不用加repeat和allrepeat这两个参数的。
/admin_video.php?order=v_name and (extractvalue(1,concat(0x7e,(select user()),0x7e))) -- 1
提取数据的过程就不累述了,有回显的注入比较好办。
CVE-2018-17062
这是一串xss漏洞的cve集合,产生问题的文件是admin_video.php
作者给出的利用链接有:
admin_video.php?action=keoiw"><script>alert(1)</script>c7dkw
其余可以利用的参数有:
area type yuyan jqtype v_isunion v_recycled v_ismoney
具体的利用可以参考具体 链接 。
我们去看一下这个代码层:
首先这里我们传入的action是不满足任何一个if条件的,所以就进入最后一个else语句,然后我们跟进模板htm文件,查看一下变量的输出是否经过过滤。
可以明显的发现,传入的变量没有经过任何的过滤,就直接输出,上面的参数基本都是这样的模式,所以这个漏洞发现的难度不是很大,但是需要及时跟进业务逻辑的更新操作。
CVE-2018-17321
同样是新业务点的xss漏洞,利用payload如下:
/admin_datarelate.php?action=dorandomset&maxHit=1000&time=1000</script><script>alert(1)</script>&submit=1
/admin_datarelate.php?action=dorandomset&maxHit=1000</script><script>alert(1)</script>&time=1000&submit=1
原理和上面的cve类似,这里就不重复讲解。
CVE-2018-17365
一枚任意文件删除漏洞,产生问题的文件是/admin/admin_template.php的114行附近。
有关的代码逻辑为:
可以看到,接受到参数以后,对其进行了简单的过滤,我们只要绕过就可以进行任意文件的删除:
$dirTemplate="../templets"; substr(strtolower($filedir),0,11)!=$dirTemplate
过滤简单的截取了传入变量的前11个字符,然后与模板文件的开头对比,但是这里忽略了操作系统中的../上跳操作,即bypass payload为:
../templets/../install/install_lock.txt
这样我们就可以删除安装产生的install锁文件,从而重新安装seacms,拿到webshell。
实际演示一下删除index.php.bak:
删除之前:
执行删除操作:admin_template.php?action=del&filedir=../templets/../install/index.php.bak
删除完:
可以发现,确实成功删除了文件,这个过滤其实是十分不安全的,所以很容易就可以bypass。
总结
对于cms的cve挖掘,需要及时的跟进业务逻辑的更新,很可能新增加的业务就会有漏洞的产生。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 通过关键字获取漏洞平台最新漏洞信息
- 漏洞预警 | MetInfo最新版本爆出SQL注入漏洞
- Coremail主动公开最新漏洞
- 复现WebLogic最新漏洞(WLS组件)
- 2018最新PHP漏洞利用技巧
- 利用Confluence最新漏洞传播的Linux挖矿病毒seasame
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Zen of CSS Design
Dave Shea、Molly E. Holzschlag / Peachpit Press / 2005-2-27 / USD 44.99
Proving once and for all that standards-compliant design does not equal dull design, this inspiring tome uses examples from the landmark CSS Zen Garden site as the foundation for discussions on how to......一起来看看 《The Zen of CSS Design》 这本书的介绍吧!