开源程序的网站漏洞检测对获取管理员密码漏洞如何修复
PbootCMS是网站常用的一款CMS系统,是由国内著名程序开发商翔云科技研发的一套网站CMS系统,免费开源,扩展性较高,使用的企业很多但是避免不了网站存在漏洞,SINE安全对其代码进行安全审计的同时发现该pbootcms 存在严重的漏洞,包含SQL注入获取管理员密码漏洞,以及远程代码注入执行漏洞。该pbootcms系统采用的是PHP语言开发,数据库是MYSQL,并支持pgsql数据库大并发处理,系统默认支持的服务器环境,PHP5.3版本以上,以及mysql版本5.6,apache,nginx,都可以运行该CMS系统。关于这次检测出来的CMS漏洞,我们进行详细的介绍。
之前的pbootcms老版本出现的漏洞也比较多,我们这次审计的是pbootcms V1.3.3新版本,新版本较于老版本更新了许多,SQL注入非法参数的过滤,以及上传漏洞的修复,过滤系统的加强,但还是始终没有严格的杜绝非法参数的传入。我们来看下这个远程代码注入执行漏洞,该漏洞产生的原因是在ParserController.php代码里的LABEL方式调用shat函数,我们来看下代码:
我们找到label调用的方式,一步步跟踪代码查到是使用了after的方式调用,看到注释的内容大体的意思是网站的前端模板在进行解析标签的操作是,会对网站前端的默认数据库标签进行解析,然后通过标签的内容再进行传递数值,在传递的过程中,用户输入的一些数据造成了这次远程代码注入执行漏洞。
pbootcms v1.3.3版本的过滤了一些非法注入参数,但是还是可以进行代码绕过,可以使用宽字节绕过注入,使用字符转义也可以对过滤系统进行绕过,混迹代码加强运算符也可以对pbootcms的安全过滤系统进行绕过。我们来测试一下:
构造我们的注入代码:我们在服务器里搭建了一个测试环境,[本地/index.php/index/index?safe=](本地/index.php/index/index?safe=){pboot:if(1)$a=$_GET[b];$a();;//)})}}{/pboot:if}&b=phpinfo
我们来执行看下,竟然执行了phpinfo查询,我们也可以执行一些查询数据库的账号密码等管理员的操作。
pbootcms获取管理员密码漏洞分析
关于这个网站漏洞的产生是存在于ParserController.php代码里的parserSearchLabel()方式进行的调用代码,可以插入一些非法的参数,单引号,转义符,斜杠等等非法参数,我们使用OR注入代码,进行获取管理员账号密码就可以了。
关于pbootcms漏洞修复,建议网站的运营者尽快升级pbootcms到最新版本,也可以在服务器端进行sql注入攻击防护,拦截get、post、cookies提交的非法参数。对网站上的漏洞进行修复,或者是对网站安全防护参数进行重新设置,使他符合当时的网站环境。如果不懂如何修复网站漏洞,也可以找专业的网站安全公司来处理,国内也就Sinesafe和绿盟、启明星辰等安全公司比较专业.针对于pbootcms默认的管理员登录地址进行修改,默认是admin.php改为anquan123admin.php即可,尽量长一些,字母加数字组合,避免攻击者进行暴力猜解,利用获取到的管理员账号密码登录后台。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
浅谈unicode编码和utf-8编码的关系
字符串编码在Python里边是经常会遇到的问题,特别是写文件以及网络传输的过程中,当调用某些函数的时候经常会遇到一些字符串编码提示错误,所以有必要弄清楚这些编码到底在搞什么鬼。 我们都知道计算机只能处理数字,文本转换为数字才能处理。计算机中8个bit作为一个字节,所以一个字节能表示最大的数字就是255。计算机是美国人发明的,而英文中涉及的编码并不多,一个字节可以表示所有字符了,所以ASCII(American national Standard Code for Information Interchange,美国国家标准信息交换码)编码就成为美国人的标准编码。但是我们都知道中文的字符肯定不止255个汉字,使用ASCII编码来处理中文显然是不够的,所以中国制定了GB2312编码,用两个字节表示一个汉字,碰到及其特殊的情况,还会用三个字节来表示一个汉字。GB2312还把ASCII包含进去了。同理,日文,韩文等上百个国家为了解决这个问题发展了一套自己的编码,于是乎标准越来越多,如果出现多种语言混合显示就一定会出现乱码。那么针对这种编码“乱象”,Unicode便应运而生了,其将所有语言统一到...
- 下一篇
java线上服务问题排查总结
java线上服务问题排查 1、业务日志相关 如果应用系统出现异常,一般都会在业务日志中体现 统计当天业务日志中ERROR出现数量:egrep ERROR --color logname | wc -l ,如果错误数量过大,一般都是有问题的 查看日志中ERROR后10行具体报错:egrep -A 10 ERROR logname | less ,或 -C 10 查看ERROR前后10行日志 Java中,所有异常都继承自Throwable类(一个完整可用的类)。整体上分为Error、Exception两个大类,Exception大类又分为UncheckedException(继承于RuntimeException)和CheckedException(继承于Exception,但不继承于RuntimeException)。常见异常关键字有:ERROR、Exception ERROR:AssertionError、OutOfMemoryError、StackOverflowError UncheckedException:AlreadyBoundException、ClassCastExcep...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Red5直播服务器,属于Java语言的直播服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装Docker,最新的服务器搭配容器使用