网站地图    收藏   

主页 > 后端 > 网站安全 >

XDCMS ODAY修补 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 12:00 作者: 阅读:

[导读] 参考 http://www.2cto.com/Article/201208/148301.html帮公司做一个企业展示网站,直接百度了xdcms模版,感觉样式还是可以的,看了一下后台功能,也不错。于是就采用了他,开始搭建。简单的处理了...

参考 http://www.2cto.com/Article/201208/148301.html

帮公司做一个企业展示网站,直接百度了xdcms模版,感觉样式还是可以的,看了一下后台功能,也不错。于是就采用了他,开始搭建。

简单的处理了一下前台界面,公司的网站就发布了。

出于惯性,百度了一下xdcms 0day果断发现中招了。。。

直接拿网站开刀,直接爆出了 管理员账号和加密之后的密码,,,

网上的东西果然很蛋疼。。

开始,有点懒,想把密码设置复杂点点,这样一来即使爆出来了,也解不开。。。

后来一想,自己真的蛋疼得不行,root的权限,都没降权,存在注入,,,还不管。。。

果断分析差生注入的原因,漏洞页面 留言板,漏洞产生原因,后台接受post传递过来的数据,直接把数据写入到了数组中。构造sql语句的时候直接把数组的键名当成了,sql语句的条件,没有结果过滤,变金数据库中了。

解决办法:既然是post传递过来的参数直接成了5个元素的数组.调用count首先判断一下 post传递过来的数组的元素个数是否正确,正确的话继续开始判断数组键值的内容是否为空(这里的判断一定要把数组键值带上判断)。

代码如下:

实际使用的只有数组中的5个元素,通过count判断元素个数。通过empty($fields['name'])来限制,数字的键值名字对应。。。

简单的就这么修改一下,能起到作用,有不完善的地方还请指导。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论