仅供娱乐,原文见http://hi.baidu.com/rayh4c/blog/item/8fde4b232afcf7499822edc5.html

日前,金山某著名“李姓安全砖家”在微博上称有黑客暴力破解其密码,导致论坛程序不让其登陆,还截图且煞有其事的在微博上叫嚣“哥的口令,你破解不了”,一时引来群众围观。

某黑客愤愤不平,斥其装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绑定。
}

//如果某个IP,登陆某个账户累计输错5 次密码,论坛便对此IP祭出15 分钟内将不能登录该账户的限制。

if(!($_G['member_loginperm'] = logincheck($_G['gp_username']))) {
    showmessage('login_strike');
   }

矮油,大家睁开氪金狗眼看清楚了,查询登录失败次数的条件是WHERE ip='$_G[clientip]' AND username='$username'那这个$_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次密码的家伙加油。亲~ ,加油,多试几次没事,反正自己破自己密码呢。

PS:

发现有非技术的同学没看懂本文,为了揭露某砖家的丑恶嘴脸,再多补充下:

一个IP登录论坛的某个账户只有5次输错密码的机会,5次机会完了,论坛就会禁止这个IP登录这个账户15分钟,在别的IP上还可以正常登录这个账户,但也要遵守同样的规则。

莫非黑客和砖家是同一个IP地址,抑或有人跑到他电脑上专门为他敲错了5次密码 = =!

所以那个谁谁砖家自己敲错密码被禁止登录,居然借此无知装B挑衅黑客,仗此无知装B鄙视同行,拿此无知来戏弄用户,我等真是耻与此人为安全工作者同行!

不过人贱自有天收,最后激怒黑客秒破其密码,连自己在黄色网站上的密码都给黑客兜底了,看得我等肚子都笑破了 ,也是完全不值得同情的。

源链接

Hacking more

...