| Myarticle文章系统存在严重漏洞 | |||||
| 本文作者:angel 文章性质:原创 发布日期:2004-04-02 |
|||||
| 前言
phparticle恐怕是最好最爽的PHP文章管理系统了,但毕竟是商业程序。虽然我有这套程序。但我没有用。还是尊重作者吧。没有钱就老老实实用Myarticle了,Myarticle是免费用户的首选。后台管理功能强大,前台简洁清爽,速度快。作为一个专业的站点最适合不过了。个人认为比夜猫的好。所以我一直用。作为一个安全站点。使用的程序有漏洞是可悲的,被该漏洞黑了是可怜的。再完美的程序也有出状况的时候。估计Myarticle也是。就从我做起,分析一下源代码,结果发现两个漏洞。 漏洞一 涉及版本: Myarticle 0.02以下 描述: 由于后台管理入口验证代码存在严重缺陷。导致任何用户可以只在用户名里输入任何字符可以进入后台。 详细: 在admin/admin_global.inc.php文件里的151行的代码是这样写的:
看出问题了吧?因为输入的是一个没有的用户名,所以它的密码肯定是为空的,自然就等于你输入的密码了。自然登陆了。 解决办法: 将上面的代码改为:
其实这个漏洞好象0.03也存在。可是测试了网上几个0.03的站点。有些可以。有些不可以。在本地调试0.03的就不能利用。不知何故?哪位高手能指点一二?感激不尽。 漏洞二 涉及版本: 目前所有版本 描述: 由于category.php、article.php、print.php……多个文件对用户提交的变量过滤不足。导致非法用户可以进行SQL Injection攻击。 详细: 这几个文件的相关代码是这样写的(这几个文件的代码不一定相同):
没有检查变量用户提交的变量。不过在PHP里注入有点困难。因为MYSQL4以下的版本是不支持子语句的,而且新版本的php.ini里的 magic_quotes_gpc 选项默认是 On 的。当 magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动转为含有反斜线的溢出字符。这样我们就无法注入了,所以注入语句就不说了,大家自己看看相关MYSQL语句再碰碰运气自己尝试注入吧。 解决办法: 检查用户输入的代码。比如检查提交的数据是否为数字类型。将以下代码:
改为:
后记: 由于是在网吧用下机前的15分钟看的源代码。难免有遗漏、疏忽的地方。有兴趣的朋友可以继续分析。有结果请第一时间告诉我,因为我也用myarticle。谢谢。 |
|||||
| 【打印这篇文章】【关闭该窗口】 | |||||
| Copyright © 2004 Security Angel Team [S4T] All Rights Reserved. |