![]() |
| Ảnh hướng dẫn |
Bộ source code dưới đây bạn có thể dùng cài xampp để chạy php trên Windows hoặc upload lên hosting.
Tạo File tên GoogleAuthenticator.php với nội dung {tocify} $title={Mục Lục}
_getBase32LookupTable(); if ($secretLength < 16 || $secretLength > 128) { throw new Exception('Bad secret length'); } $secret = ''; $rnd = false; if (function_exists('random_bytes')) { $rnd = random_bytes($secretLength); } elseif (function_exists('mcrypt_create_iv')) { $rnd = mcrypt_create_iv($secretLength, MCRYPT_DEV_URANDOM); } elseif (function_exists('openssl_random_pseudo_bytes')) { $rnd = openssl_random_pseudo_bytes($secretLength, $cryptoStrong); if (!$cryptoStrong) { $rnd = false; } } if ($rnd !== false) { for ($i = 0; $i < $secretLength; ++$i) { $secret .= $validChars[ord($rnd[$i]) & 31]; } } else { throw new Exception('No source of secure random'); } return $secret; } public function getCode($secret, $timeSlice = null) { if ($timeSlice === null) { $timeSlice = floor(time() / 30); } $secretkey = $this->_base32Decode($secret); $time = chr(0).chr(0).chr(0).chr(0).pack('N*', $timeSlice); $hm = hash_hmac('SHA1', $time, $secretkey, true); $offset = ord(substr($hm, -1)) & 0x0F; $hashpart = substr($hm, $offset, 4); $value = unpack('N', $hashpart); $value = $value[1]; $value = $value & 0x7FFFFFFF; $modulo = pow(10, $this->_codeLength); return str_pad($value % $modulo, $this->_codeLength, '0', STR_PAD_LEFT); } public function setCodeLength($length) { $this->_codeLength = $length; return $this; } protected function _base32Decode($secret) { if (empty($secret)) { return ''; } $base32chars = $this->_getBase32LookupTable(); $base32charsFlipped = array_flip($base32chars); $paddingCharCount = substr_count($secret, $base32chars[32]); $allowedValues = array(6, 4, 3, 1, 0); if (!in_array($paddingCharCount, $allowedValues)) { return false; } for ($i = 0; $i < 4; ++$i) { if ($paddingCharCount == $allowedValues[$i] && substr($secret, -($allowedValues[$i])) != str_repeat($base32chars[32], $allowedValues[$i])) { return false; } } $secret = str_replace('=', '', $secret); $secret = str_split($secret); $binaryString = ''; for ($i = 0; $i < count($secret); $i = $i + 8) { $x = ''; if (!in_array($secret[$i], $base32chars)) { return false; } for ($j = 0; $j < 8; ++$j) { $x .= str_pad(base_convert(@$base32charsFlipped[@$secret[$i + $j]], 10, 2), 5, '0', STR_PAD_LEFT); } $eightBits = str_split($x, 8); for ($z = 0; $z < count($eightBits); ++$z) { $binaryString .= (($y = chr(base_convert($eightBits[$z], 2, 10))) || ord($y) == 48) ? $y : ''; } } return $binaryString; } protected function _getBase32LookupTable() { return array( 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', // 7 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', // 15 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', // 23 'Y', 'Z', '2', '3', '4', '5', '6', '7', // 31 '=', // padding char ); } private function timingSafeEquals($safeString, $userString) { if (function_exists('hash_equals')) { return hash_equals($safeString, $userString); } $safeLen = strlen($safeString); $userLen = strlen($userString); if ($userLen != $safeLen) { return false; } $result = 0; for ($i = 0; $i < $userLen; ++$i) { $result |= (ord($safeString[$i]) ^ ord($userString[$i])); } return $result === 0; } } ?>{codeBox}
Upload lên Hosting. Vậy là chúng ta có bộ source code lấy mã 2FA giống 2fa.live.
Kích hoạt 2FA trên Facebook lấy mã bí mật
Bạn truy cập vào link bật 2FA cho ứng dụng tại: https://www.facebook.com/security/2fac/settings
Tìm đến chỗ Ứng dụng xác thực -> Thiết lập
![]() |
| Hình ảnh hướng dẫn |
Trên màn hình sẽ hiển thị mã QR và mã bí mật, bạn cần copy mã bí mật này lại vào notepad và lưu trên máy tính. Mã bí mật này dùng để lấy mã 2FA của Facebook
![]() |
| Hình ảnh hướng dẫn |
Bây giờ ta có mã bí mật là: MM5B7S2J605NE4CSXXXXXXXXX (hãy xóa các dấu cách đi nhé).
Bây giờ để lấy 2FA chúng ta làm như sau:
Nhập mã bí mật phía sau dấu =. Ví dụ: https://domain.com/2fa.php?key=mã-bí-mật (Thay domain thành tên miền của bạn)
Ví dụ: https://domain.com/2fa.php?key=MM5B7S2J605NE4CSXXXXXXXXX
Dãy số bên dưới là mã 2FA để bạn xác thực với Facebook.
![]() |
| Hình ảnh hướng dẫn |
Nếu ai chưa hiểu thì comment bên dưới, mai mình sẽ hướng dẫn chi tiết bằng hình ảnh từng bước một
- 2fa.live
- code 2fa.live
- source code 2fa.live
- fake code 2fa.live
- code lấy mã 2fa



