<< 公告MSSQLl注入学习笔记 >>

Php168 v 4.0 sp global.php 写入漏洞

by: 大蝉

昨晚无事,看到一个感兴趣的网站,职业病又犯了,随便转转,发现是一个叫PHP168的整站,没见过,于是去官方网站下了份代码来读,看到困的要死的时候,发现了点什么.

在global.php中有这样的代码:
function login_logs($username,$password){
global $timestamp,$onlineip;
$logdb[]="$username\t$password\t$timestamp\t$onlineip";
@include(PHP168_PATH."cache/adminlogin_logs.php");
$writefile=" $jj=0;
foreach($logdb AS $key=>$value){
$jj++;
$writefile.="\$logdb[]=\"$value\";";
if($jj>200){
break;
}
}
write_file(PHP168_PATH."cache/adminlogin_logs.php",$writefile);
}

当登陆admin界面时,每次登陆的username都记录在cache/adminlogin_logs.php中,但是却没有对$username变量进行过滤,导致攻击者可以构造恶意$username变量,最终向cache/adminlogin_logs.php写入木马程序.
哈哈,这就是我要找的了,我开始考虑构造的问题,由于前面有结束掉前面的脚本标记,可是问题又来了

$logdb[]="$username\t$password\t$timestamp\t$onlineip";

在$username之前有个极其讨厌的”号,必须要再写入一个”来关闭它,可是默认设置下写入”或者’会在前面加上\,从而变成\”,双引号也就没用了.
这个问题困扰了我5个小时,凌晨4点钟,困的实在是受不了了,准备放弃了,谁知峰回路转,上帝在我失败的前一秒钟眷顾了我,我突然发现程序过滤\和$,也就是说,第一次写入”,自动加上了\,但是再次写入的时候,\就被去掉了
哈哈哈,大功告成,去官方网站测试了一下,轻松拿到shell
入侵到此结束.

已经提醒程序开发者,官网漏洞已补上,补丁也已经出来了
添加书签: [QQ书签] [百度搜藏] [新浪ViVi] [365Key网摘] [天极网摘] [我摘] [POCO网摘] [和讯网摘]
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

Search

最近发表

Copyright 2006-2008 www.edge365.com Some Rights Reserved.