您没有来错地!为了更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 安全攻防 查看内容

Ce-Admin新闻发布系统漏洞分析

2009-2-4 09:39| 投稿: security

摘要: 该新闻发布系统目前主要用于图片新闻的发布,由于能生成html,浏览速度很快,产生了多个修改版本,目前发现至少有4个修改版本,用户群广大,虽然经过了修改,但是还是存在安全隐患:  &...
该新闻发布系统目前主要用于图片新闻的发布,由于能生成html,浏览速度很快,产生了多个修改版本,目前发现至少有4个修改版本,用户群广大,虽然经过了修改,但是还是存在安全隐患:    Ce-Admin原版下载地址:http://down.chinaz.com/s/15868.asp    J111版图片程序下载地址:http://www.lwcode.com/codeinfo/1045.html    52mt版图片程序下载地址:http://www.indowns.com/Soft/1/25/2005/200512265441.html    lc520版图片程序下载地址:http://www.soucode.com/Software/Catalog18/7102.html    玩乐吧版本,程序演示地址:http://www.ebpv.com    由于存在的安全隐患都是相同的,我主要对原版程序文件进行漏洞分析,其他版本则进行简单介绍。 1、原版漏洞分析   * 管理目录下del.asp、save.asp来源未检查漏洞      Ce-Admin版管理目录为ce-admins,j111版和lc520版管理目录均为j111admins,52mt版为Admin_52mt,更多的是修改成Admin,一般可以通过提交http://target/admin_login.asp然后查看网页源文件得到管理目录。      由于del.asp和save.asp没有对来源进行检查,可以导致攻击者匿名就可以进行新闻以及新闻分类的删除,还可以非法进行新闻的添加、修改。       来看del.asp中删除分类功能的代码:  图1:删除分类部分代码       通过提交如下url可以删除id为15并且名称为“security”的分类:(新闻的分类名称可以在首页找到,分类ID则可以进行构造和枚举,一般是1-50之内的数字)      http://target/ce-admins/Del.asp?ID=15&Type=NewsClass&News_Class=security(url1)       另外,上述代码并没有对ID进行合法性验证,可以导致注入,但是因为不容易取得ID和分类名称之间的对应关系,所以很难被攻击者利用。通过分析,ID和分类名的对应只可以通过提交上述“url1”来确认,但是如果确认,这个分类也就被删除了,再者攻击者没有权限进行分类的添加,所以无法继续利用。       再看del.asp中删除新闻功能的代码: 图2:删除新闻部分代码       需要两个参数,一个是类型News,一个是生成的新闻页面文件名File_Name,type固定,而新闻的文件名file_name可以根据首页新闻的URL得到,所以通过提交如下url可以删除数据库中记录以及生成的html文件:      http://target/ce-admins/Del.asp?File_Name=20060309131700.html&Type=News       由于未进行来源的验证,本地构造表单可以进行新闻的添加和修改,来看这部分代码: 图3:新闻添加功能部分代码       需要4个参数,构造表单如下, Post地址为:http://target/ce-dmins/save.asp?Type=add 图4:构造的表单       对指定ID新闻的修改只需要将上述表单的post地址改为:      http://target/ce-admins/save.asp?Type=edit&ID=11       这里的ID可以在html新闻页面的源文件里找到: 图5:新闻 ID包含在生成的html文件  * 管理目录下save.asp导致网站web路径暴露漏洞      进行新闻的批量生成时,save.asp会暴露服务器路径,由于没有来源检查,匿名用户只要提交如下url就可以知道网站web路径:(b_id为需批量生成的起始新闻id,e_id为结束id)http://target/ce-admins/Save.asp?Type=update&b_id=1&e_id=11111 图6:网站web路径暴露  * session欺骗漏洞      ce-admin系统对管理员的验证通过session实现,具体文件为check.asp: 图7:session验证       可以构造包含如下内容的asp文件,浏览后再访问ce-admins下的admin_index.asp即可进入管理页面。            缓解因素:攻击者首先需要取得web服务器上其他站点的webshell权限,主要影响对象为虚拟主机。  * 所带ewebeditor编辑器session欺骗漏洞      Ce-Admin自带了ewebeditor编辑器,版本为免费版2.8.0,这是一款所见即所得的网页编辑器,该系统对管理员的验证通过session实现,具体文件为Admin_Private.asp,相关代码如下: 图8:session验证       可以构造包含如下内容的asp文件,浏览后再访问uploadfile下的Admin_Default.asp即可进入管理页面。            缓解因素:攻击者首先需要取得服务器上其他站点的webshell权限,主要影响对象为虚拟主机。  * 所带ewebeditor编辑器admin_uploadfile.asp目录遍历以及文件删除漏洞      该asp文件是用来管理上传文件的,但是可以构造dir参数进行目录的遍历通过提交http://target/uploadfile/admin_uploadfile.asp?id=14&dir=../../      返回结果如下,并且可以进行非授权文件的删除操作。 图9:目录遍历       缓解因素:首先需要取得ewebeditor的后台权限。  * 所带ewebeditor编辑器upload.asp文件上传漏洞      上传通过upload.asp来实现,除了如图11设置的扩展名外,还对asp文件进行了限制: 图10:对asp文件的限制       设置任何情况均不允许上传asp文件,但是我们可以突破,既然程序会把asp替换,那我们在上传文件设置里设置允许上传扩展名为aaspsp的文件,因为程序检查扩展名时把asp替换为Null,那么aaspsp就变成asp,就可以上传asp文件了  图11:上传文件扩展名设置 图12:经过设置后asp文件可以上传!       当然我们还可以设置允许上传asa、cer等也能被asp.dll解析的文件来达到目的。      缓解因素:首先需要取得ewebeditor的后台权限。       注:以上ewebeditor编辑器的漏洞在最新免费版本2.8修正版中也存在,商业版未做测试。 2、其他修改版本简单分析     其他修改版本中的玩乐吧版,直接把数据库改成了#$%mmpic%$#.asp(j111版改为j111mm.asp),初衷是为了防止下载,虽然通过http://target/data/#$%mmpic%$#.asp 不能下载,但是用flashget下载如下url则可以下载:http://target/data/#$%mmpic%$#.asp    这里涉及url编码的问题,因为#$%是非数字和字母,字母不需要编码,如果编码也是可以识别的,编码的规则是%加ascii码的16进制,#$%的ascii码为35、36和37,16进制则是23、24和25。因此#$%mmpic%$#的url编码是#$%mmpic%$#。url编码经常被攻击者用于Phishing钓鱼攻击,这里不再展开。     Ce-Admin的密码是明文的,所以下载数据库后用access打开可以得到管理员密码直接登陆管理页面,然后添加新闻,或者构造表单添加新闻,在标题内输入一句话asp木马:发布后,http://target/data/#$%mmpic%$#.asp成了webshell,可以上传其他asp木马进行其他非授权的活动,甚至提升权限得到系统管理权限。 3、漏洞防范   * del.asp和save.asp      针对del.asp和save.asp的来源未检查以及web路径暴露漏洞,我们可以在这两个文件中加上头文件:处理 SSI 文件时出错      check.asp内容如下:     * session欺骗漏洞       对于session欺骗,相关的是cookie欺骗,相对来说session比cookie更安全一些,因此我们不建议你改用cookie验证。建议选择设置比较安全的虚拟主机,并加强对服务器的安全管理。  * 目录遍历漏洞      在admin_upload.asp中找到sDir = Trim(Request("dir")这行,修改为: sDir = Replace(Trim(Request("dir")),"..", "/")  * ewebeditor上传漏洞      可以把upload.asp文件中的sAllowExt = Replace(UCase(sAllowExt), "ASP", "")改为:       因为很多虚拟主机是全能主机,可以同时支持asp、aspx、jsp、cgi、php,因此也需要把这些过滤掉,上述语句是把asp等替换为”error”。  * 另外,建议你把程序默认的管理员账户以及数据库文件名进行修改,不建议你把数据库改成asp来防止下载,如果一定要改成asp,那么安全的方法如下:      首先新建1个txt文件,内容为,然后在需要改为asp的数据库文件中新建1个表,名字任意,字段任意,数据类型为ole对象,如图:       添加数据库记录,ALT+T选择对象—>由文件创建-->选择刚才新建的文本,插入后显示如下:       这样设置的原因是:asp会对进行解析,因为符号未闭合发生错误,可有效防下载。

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部