成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

密碼重置漏洞那點事兒

安全 漏洞
密碼重置功能是一些常見漏洞的起因。例如用戶名枚舉漏洞(數據庫中用戶名不存在和密碼錯誤顯示不同的錯誤信息),敏感信息泄露(把明文密碼通過e-mail發送給用戶)重置密碼消息劫持(攻擊會者接收到密碼重置信息)這些都是在密碼重置功能中比較常見的漏洞。

密碼重置功能是一些常見漏洞的起因。例如用戶名枚舉漏洞(數據庫中用戶名不存在和密碼錯誤顯示不同的錯誤信息),敏感信息泄露(把明文密碼通過e-mail發送給用戶)重置密碼消息劫持(攻擊會者接收到密碼重置信息)這些都是在密碼重置功能中比較常見的漏洞。

很多開發者都不能真正了解密碼重置所能引發的危害,而這個博客文章告訴大家一些不遵守基本安全準則的開發人員所開發的密碼重置功能會帶來哪些危害。

舉個例子,一個健壯的密碼恢重置功能會生成一個令牌,并通過電子郵件發送一個包含令牌的重置密碼連接給用戶。

令牌應具有以下特征:

包含64個字符或者更多

唯一性

隨機性

一次性

擁有較短壽命(比如在24小時內到期)

當用戶點擊該鏈接時,應用程序必須檢查令牌是否有效。

如果令牌有效,應用程序必須注銷這個令牌,以便它不能被重用,并允許用戶更改自己的密碼。

此外,如果用戶試圖第二次重置密碼,在完成第一次重置過程之前,應用程序必須廢止舊的密碼重置請求并生成一個新的重置請求。

為了提高安全性,也可以使用雙重的用戶身份認證(但并不是必須使用)。

比如,要求用戶回答之前填寫的隱私問題(比如我的大姨媽的名字是神馬)或確認發送到用戶手機的驗證碼。

現在,讓我們分析一個真實的并且設計的很糟糕的密碼恢復系統,列舉出所有相關的安全漏洞,并嘗試編寫POC

  1.  <?php      
  2.  /* generates a new random password */   
  3.   function generatePassword() {   
  4.        $chars = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9");        
  5.        for ($i = 0; $i < 10; $i++){             
  6.            $password .= $chars[rand(0,35)];   
  7.       }   
  8.       return $password;   
  9.   }   
  10.      /* send the new password to the user e-mail and update the database */   
  11.  if ($_REQUEST['mail']) {        
  12.       $con = new Connection();   
  13.      $con->sql = "  SELECT usr_user.id,    
  14.                      usr_user.name,    
  15.                      usr_user.email,    
  16.                       usr_user.password   
  17.                 FROM  usr_user    
  18.                   WHERE  usr_user.email = '" . $_REQUEST['mail'] . "'   
  19.                   ORDER  BY id DESC ";   
  20.      $res = $con->executeQuery();   
  21.       if (is_array($res)){   
  22.            $usr = $res[0];   
  23.           $password = generatePassword();   
  24.            $con->sql = "UPDATE usr_user SET password = MD5(trim('".$password."')) WHERE email = '" . $_REQUEST['mail'] . "' ";   
  25.          $con->executeQuery();   
  26.          /* headers */   
  27.             $headers = "MIME-Version: 1.0\r\n";   
  28.           $headers ."Content-type: text/html; charset=iso-8859-1\r\n";   
  29.     
  30.            /* aditional headers */   
  31.            $headers ."To: " . $usr->name . " <.="" 35:="" headers="" 36:="" 37:="" message="" body="" 38:="" html="" 39:="" usr-="">name . '';   
  32.            $html .'';   
  33.           $html .'';   
  34.           $html .'';   
  35.           $html .'';          
  36.           /* Send e-mail to user with his new password   
  37.           if (mail($_REQUEST['mail'], "Your new administrative password", $html, $headers)){   
  38.               $message = "Your new password was sent to: " . $_REQUEST['mail'];   
  39.               $success = true;   
  40.            }   
  41.      } else {             
  42.            $message = "The provided e-mail is invalid";   
  43.           $success = false;   
  44.      }         
  45.  }      
  46. ?> 

(1)用戶名枚舉

最明顯的漏洞就是用戶名枚舉漏洞,用戶提交一個郵箱地址,如果郵箱存在那么,系統會返回一條信息

"Your new password has been sent to: LanLan@wyl.com"

如果該郵箱沒有被人注冊,那么系統將返回

"The provided e-mail is invalid"

(2)拒絕服務

第二個漏洞應該是拒絕服務

這個系統中有一個生成隨機密碼的函數,攻擊者可以編寫一個腳本來不斷嘗試重置密碼過程(原文中給出15秒每次,懷疑頻率是否有點低)

另外,如果配合用戶名枚舉漏洞的話,這個漏洞會產生更大的危害,可以用來更改任意用戶的密碼。(雖然你收不到該密碼,但也可以給用戶產生不小的麻煩)

(3)敏感信息泄露

第三個漏洞是敏感信息泄露,因為該系統使用明文把密碼通過郵件發送給用戶,并且沒有在用戶下次登錄的時候

強制用戶修改密碼。如果攻擊者獲取了用戶的郵件信息(其實這個也不算特別容易),就可以通過郵件中的密碼登錄系統。

(4)SQL 注入

第四個注入漏洞也比較明顯,用戶提交的數據沒有經過過濾直接代入查詢語句,利用方式也有很多種。這樣構造可以改掉所有用戶的密碼,也可以用來造成拒絕服務攻擊。

Input: ’ or 1=1%23
First SQL becomes (Line 15): SELECT usr_user.id, usr_user.name, usr_user.email, usr_user.password FROM usr_user WHERE usr_user.email = ’’ or 1=1#’ ORDER   BY id DESC
Second SQL becomes (Line 26): UPDATE usr_user SET password = MD5(trim(‘xxxxxxxxxx’)) WHERE email like ’’ or 1=1#’

這個注入點還可以用來進行盲注來猜測一些敏感信息。

(5)跨站腳本漏洞

第五個漏洞也可以很明顯的找到,用戶輸入的mail參數被帶入到了郵件內容中(沒有經過任何過濾),這個漏洞的利用需要配合

SQL 注入漏洞來使用

User Input: ’ or 1=1%23
First SQL becomes (Line 15): SELECT usr_user.id, usr_user.name, usr_user.email, usr_user.password FROM usr_user WHERE usr_user.email = ’’ or 1=1#‘ ORDER BY id DESC
Second SQL becomes (Line 26): UPDATE usr_user SET password = MD5(trim(‘xxxxxxxxxx’)) WHERE email like ’’ or 1=1#‘
Response Message (Line 47): Your new password was sent to: ’ or 1=1#

提交上述數據,系統首先會修改所有用戶的密碼,然后給所有用戶發送包含惡意腳本的文件

(6)密碼重置信息劫持

最后一個漏洞是密碼重置信息劫持,也是危害比較嚴重的漏洞。產生原因是,用戶提交數據mail(又是這貨)被包含到了MIME頭中,這個漏洞的利用同樣需要配合SQL注入:

User Input: LanLan@wyl.com%00’ or 1=1%23
First SQL becomes (Line 15): SELECT usr_user.id, usr_user.name, usr_user.email, usr_user.password FROM usr_user WHERE usr_user.email = ’LanLan@wyl.com[null byte char]’ or 1=1#’ ORDER BY id DESC
Second SQL becomes (Line 26): UPDATE usr_user SET password = MD5(trim(‘xxxxxxxxxx’)) WHERE email like ’LanLan@wyl.com[null byte char]’ or 1=1#’
MIME Header becomes (Line 34): To: John Smith

執行上面的代碼的結果就是所用用戶密碼被修改,修改后的郵件會被發送到LanLan@wyl.com,這里[null byte char]會截斷mini頭中的信息。

原文地址:http://blog.spiderlabs.com/2013/12/exploiting-password-recovery-functionalities.html

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2011-12-26 11:13:24

密碼

2022-05-26 15:30:21

Spring AOP框架

2020-01-03 07:57:39

UDPTCP網絡協議

2015-12-08 14:49:13

SDN軟件定義網絡

2017-09-12 08:03:29

數據庫MySQL主庫

2013-11-26 09:45:36

2013-09-17 10:37:03

AOPAOP教程理解AOP

2022-05-26 09:03:39

AOP編程

2018-03-30 16:03:04

軟件無狀態”

2023-12-04 11:02:53

C++空類

2012-03-12 21:23:47

Windows pho

2021-04-13 09:12:45

網絡設備無線路由器交換機

2012-04-17 11:21:50

Java

2013-12-04 09:46:56

Hyper-VNUMA

2017-04-19 08:35:34

2018-05-17 09:46:40

apachenginx阻塞

2021-06-09 13:28:40

密碼安全身份認證數據安全

2010-05-21 15:34:02

Exchange 20

2018-12-19 10:52:35

嵌入式CPU微處理器

2019-02-12 11:45:05

Java數據庫開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美久久一区 | 亚洲精品18 | 久久综合影院 | 麻豆视频在线免费观看 | 日本一区二区在线视频 | 波多野结衣中文字幕一区二区三区 | 欧美日韩在线播放 | 日韩av免费在线电影 | 成人免费视频网站在线看 | 亚洲精品一区二三区不卡 | 成年人在线观看视频 | 草久在线视频 | 亚洲精品久久久一区二区三区 | 亚洲一区二区中文字幕 | 国产精品视频在线播放 | 羞羞视频网站 | 亚洲激情一区二区三区 | 日韩精品区 | 在线观看中文字幕视频 | 在线中文视频 | 97热在线 | 91视频在线观看 | 免费黄色片在线观看 | 91电影院 | 国产91久久精品一区二区 | 欧美日韩一区二区三区四区 | 亚洲一区二区中文字幕在线观看 | 少妇特黄a一区二区三区88av | 北条麻妃一区二区三区在线视频 | a在线视频 | 激情欧美一区二区三区中文字幕 | 亚洲综合在线一区二区 | 欧美日韩专区 | 青青久久 | 国产欧美日韩在线观看 | 亚洲综合在线视频 | 最新黄色在线观看 | 操亚洲| 欧美一区二区在线观看 | 91看片网| 成人福利|