本帖最后由 zhanghusen 于 2011-9-15 23:27 编辑
日前,金山某著名“李姓安全砖家”在微博上称有黑客暴力破解其密码,导致论坛程序不让其登陆,还截图且煞有其事的在微博上叫嚣“哥的口令,你破解不了”,一时引来群众围观。
某黑客愤愤不平,斥其装B,秒破该砖家密码,导致该“李姓安全砖家”情绪失控,指着围观群众鼻子骂娘,引起围观群众一片哗然。
某安全圈同行指出“铁军老板,我不得不说,是跟你同一IP的人在登录网站时密码错误过多导致你登陆不了的,如果我没记错DZ不是根据用户密码错误次数来计算的,而是根据IP。”
随后哥也无辜的被“李姓安全砖家”发表声明说装B了,实在是哭笑不得,遂决定科普解密下黑客是怎么暴力破解其密码的,金山使用的是DISCUZ论坛程序,下面来看下DISCUZ到底是怎么一个登录流程:
function logincheck($username) {
global $_G;
$return = 0;
$username = addslashes(trim(stripslashes($username)));
$login = DB::fetch_first("SELECT count, lastupdate FROM ".DB::table('common_failedlogin')." WHERE ip='$_G[clientip]' AND username='$username'");
$return = (!$login || (TIMESTAMP - $login['lastupdate'] > 900)) ? 4 : max(0, 4 - $login['count']);
//关键代码在这一处,检查登录时间和登录失败次数,默认允许登录失败次数为5次!
function loginfailed($username) {
global $_G;
$username = addslashes(trim(stripslashes($username)));
DB::query("UPDATE ".DB::table('common_failedlogin')." SET count=count+1, lastupdate='$_G[timestamp]' WHERE ip='$_G[clientip]' AND username='$username'");
//统计登陆者登录失败的次数,与登陆者IP绑定。
}
//如果累计5 次错误尝试,便祭出15 分钟内将不能登录论坛
if(!($_G['member_loginperm'] = logincheck($_G['gp_username']))) {
showmessage('login_strike');
}
矮油,大家睁开氪金狗眼看清楚了,查询登录失败日志的条件是WHERE ip='$_G[clientip]',那这个$_G[clientip]是如何来的呢?
function _get_client_ip() {
$ip = $_SERVER['REMOTE_ADDR'];
//恩,黑客可以破解TCP IP协议,伪造$_SERVER['REMOTE_ADDR'],任意制造IP,穿越过来打击“李姓安全砖家”。
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
//HTTP_X_FORWARDED_FOR,哦,确实可以伪造“李姓安全砖家”的IP,闲得蛋疼的人可以一起来猜猜“李姓安全砖家”的IP哦 - -!
foreach ($matches[0] AS $xip) {
if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
$ip = $xip;
break;
}
}
}
return $ip;
}
到这里,只能得出搞笑的真相:
一. 和“李姓安全砖家”同一个IP的内鬼在“破解”该“李姓安全砖家”的密码。
二. 有蛋疼黑客猜出了“李姓安全砖家”的IP,蛋疼的用这个IP,蛋疼地破解“李姓安全砖家”的密码。
三. 一个哭笑不得的真相是该“李姓安全砖家”在自己破解自己口令~ 在自己破解自己口令~在自己破解自己口令。。。。。360度~3D~立体~震荡波~回声! ~ - -!
最后大家鼓掌吧,为了这个输错5次密码的家伙加油。亲~ ,加油,多试几次没事,反正自己破自己密码呢。
转自百度空间
http://hi.baidu.com/rayh4c/blog/item/8fde4b232afcf7499822edc5.html?timeStamp=1316074299031 |