Gxlcms 小说系统,是目前站长应用较多的一个CMS系统,PHP语言开发,
mysql数据库架构,性能强大,在网站优化方面做的还是比较不错的,前端时间某
一客户网站被黑,导致网站被跳转到赌博网站上去,委托我们对网站进行详细的网
站安全检测,以及代码安全审计。
Gxlcms 采用的是thinkphp的一个开放性架构,之前我们也对thinkphp的代码进行
安全检测过,所以这次的网站安全检测相对比较容易一些,但还是要仔细的对每个
代码,每个文件进行详细的安全检测。我们现在下载客户的网站程序源码,先大体
的审查一些整个网站的功能,看下网站的留言板功能,文件上传、评论、会员注册
等比较重要的一些功能页面,然后再去针对特定功能进行网站的安全检测,这样整
体的安全检测效率会更高一些。
我们直接定位吧,少走些弯路,在前端页面SearchAction.class.php里发现了漏洞
,如下图所示:
可以看到以上的函数strip_tags和htmlspecialchars,一个是html标签的安全过滤
,一个是HTML注入过滤。这里想讲的是因为我这里测试的是注入,不是xss,因此
这些过滤条件好像无关紧要,但是tp框架自带的单引号转义,我们要绕过去。Sine
安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,
渗透测试,安全服务于一体的网络安全服务提供商。
然后发现这个函数还调用了评论,那么我们抓包来评论一下,通过抓包修改参数,
我们发现是一个盲注,我们可以直接获取管理员的密码。
在进行详细的网站安全检测时,我们在网站后台发现了getshell漏洞。
在网站后台的附件设置里,直接可以更改上传文件的类型,但是当我加上一个php
后,竟然没了,仿佛就是preg_replace搞得鬼,然后去源码看了下,才发现了一个
网站漏洞,Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、
网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
$upload_class = str_replace(array("php", "asp", "apsx", "txt", "asax",
"ascx", "cdx", "cer", "cgi", "jsp", "html", "html", "htm", ",,"), "",
strtolower(C("upload_class")));1$upload_class = str_replace(array("php",
"asp", "apsx", "txt", "asax", "ascx", "cdx", "cer", "cgi", "jsp",
"html", "html", "htm", ",,"), "", strtolower(C("upload_class")));
将这些字符串进行替换处理,多少次注入绕过,漏洞代码就是这么写的。
这里我添加的是pphphp,由于会替换php为空,这里会将中间的第一个php删掉,最
后留下php,即可以上传php大马并获取网站的权限。