⑴ ctfshow-SQL注入篇[Web201-Web213 sqlmap使用]
參考: https://www.wlhhlc.top/posts/14827
開始sqlmap的使用,提示使用 --refer 繞過refer檢查:
注意,最後一句不加 --mp 會直接把數據寫入文件中,不顯示在終端上。
提示如下:
提示如下:
提示需要api鑒權:
可以看到,每次請求之前會進行如下url的調用:
最終的命令如下:
提示我們需要閉合:
查詢語句中也的確是這樣的:
不過sqlmap會幫我們處理這個,所以不需要在意,命令和上一題一樣:
對傳入的參數開始過濾了,使用tamper應對。
這一題過濾了空格,可以使用注釋進行繞過,使用sqlmap自帶的space2comment.py進行繞過:
space2comment.py如下:
當然也可以使用 %09 之類的來進行繞過。
對小寫的 select 和空格進行了繞過,不過sqlmap中的select都是大寫的,所以和上一題一樣即可:
過濾了空格,*號和等號,使用 %09 繞過空格,使用 like 繞過等號,基於此改一下tamper即可:
命令如下:
base64和反轉字元串連著來,按著邏輯寫腳本即可:
命令如下:
多加了一個空格過濾,用注釋繞過:
命令如下:
除了base64和反轉字元串,還過濾了空格和*號,那麼使用 %09 繞過空格:
命令如下:
提示了使用 --os-shell :
–os-shell 其本質是寫入兩個shell文件,其中一個可以命令執行,另一個則是可以讓我們上傳文件;
不過也是有限制的,上傳文件我們需要受到兩個條件的限制,一個是網站的絕對路徑,另一個則是導入導出的許可權
在mysql中,由 secure_file_priv 參數來控制導入導出許可權,該參數後面為null時,則表示不允許導入導出;如果是一個文件夾,則表示僅能在這個文件夾中導入導出;如果參數後面為空,也就是沒有值時,則表示在任何文件夾都能導入導出
命令如下:
如圖,獲得了shell:
上圖中出現了兩個php文件,分別是tmpbvrci.php和tmpuuvbo.php,這就是前面所提到的sqlmap上傳的兩個shell文件。
tmpbvrci.php用於命令執行:
而tmpuuvbo.php用於文件上傳:
獲得flag:
⑵ sqlmap怎麼注入ACCESS資料庫
跑表,命令是sqlmap–u「url/NewsShow.asp?id=69」–tables。
遇到這個,可以直接選擇回車。
⑶ 怎麼用sqlmap測試登錄注入
嚴謹一點問題應該是:怎麼用sqlmap測試Post注入,方法為:
第一種方式:./sqlmap.py-rpost.txt(儲存post數據的文本)-p要注入的參數
第二種方式:sqlmap-u"url"--forms
第三種方式:sqlmap-u"url"--data"指定的參數"(如txt_UserName=aaa&txt_Pwd=aaaa)
⑷ sqlmap post注入怎麼獲取注入的參數
POST注入
有兩種方法來進行post注入,一種是使用--data參數,將post的key和value用類似GET方式來提交。二是使用-r參數,sqlmap讀取用戶抓到的POST請求包,來進行POST注入檢測。
查看payload
之前一直是加本地代理,然後用burpsuit來看sqlmap的payload,到現在才發現用-v參數就可以實現。一直認為-v實現的只是控制警告,debug信息級別。實際上使用-v 3就可以顯示注入的payload,4,5,6還可以顯示HTTP請求,HTTP響應頭和頁面。
使用google搜索
sqlmap可以測試google搜索結果中的sql注入,很強大的功能吧。使用方法是參數-g。不過感覺實際使用中這個用的還是很少的。
請求延時
在注入過程中請求太頻繁的話可能會被防火牆攔截,這時候--delay參數就起作用了。可以設定兩次HTTP請求間的延時。有的web程序會在多次錯誤訪問後屏蔽所有請求,這樣就導致之後所有的測試無法進行,繞過這個策略可以使用--safe-url,每隔一段時間去訪問一個正常的頁面。
偽靜態頁面
有些web伺服器進行了url rewrite或者網站是偽靜態的,無法直接提供測試參數,這樣子可以使用*來代替要測試的參數。
執行系統命令
當資料庫支持,並且當前用戶有許可權的時候,可以執行系統命令,使用--os-cmd或者--os-shell,具體的講,當可以執行多語句的時候,會嘗試用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)來執行系統命令。不能執行多語句時,仍然會嘗試創建一個webshell來執行語句,這時候就需要web的絕對路徑了。總體來說,成功率偏低,不過個人也有成功的經驗~
測試等級
sqlmap使用--level參數來進行不同全面性的測試,默認為1,不同的參數影響了使用哪些payload,2時會進行cookie注入檢測,3時會進行useragent檢測。
⑸ sqlmap一跑就死,怎麼注入
安裝sqlmap
解壓下載的sqlmap壓縮包,裡面是sqlmap源碼,無需安裝,可直接使用
使用sqlmap
對於存在漏洞的url如:http://www.xxxxx.com/abc.php?id=1
打開cmd在sqlmap目錄下輸入如下語句:python sqlmap.py -u http://www.xxxxx.com/abc.php?id=1
⑹ sqlmap怎麼注入ACCESS資料庫
方法/步驟
首先我們先來跑表
命令是sqlmap –u 「url/NewsShow.asp?id=69」 –tables
一路上大家遇到這個
可以直接選擇回車
等到了這里
大家選擇線程1到10
開始掃表。你也可以在出現admin這個表的時候按下ctrl+c就可以終止然後就獲取表
然後我們直接再次輸入命令sqlmap –u 「url/NewsShow.asp?id=69」 –colunmns –T admin
然後得到了裡面的欄位username password id
然後我們直接跑欄位內容sqlmap –u 「url/NewsShow.asp?id=69」 –mps –T admin –C 「username,password」
然後一路還是回車。到了
還是選擇線程1到10
最後跑出了用戶名。密碼
9
⑺ 需要登錄的網頁 sqlmap怎麼注入
·對於需要登錄的網站,我們需要指定其cookie 。我們可以用賬號密碼登錄,然後用抓包工具抓取其cookie填入。
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --cookie="抓取的cookie" #探測該url是否存在漏洞
·對於是post提交數據的URL,我們需要指定其data參數
sqlmap -u "http://192.168.10.1/sqli/Less-11/" --data="uname=admin&passwd=admin&submit=Submit" #抓取其post提交的數據填入
我們也可以通過抓取 http 數據包保存為文件,然後指定該文件即可。這樣,我們就可以不用指定其他參數,這對於需要登錄的網站或者post提交數據的網站很方便。
我們抓取了一個post提交數據的數據包保存為post.txt,如下,uname參數和passwd參數存在SQL注入漏洞
⑻ sqlmap怎麼注入sql server
當給sqlmap這么一個url的時候,它會:
1、判斷可注入的參數
2、判斷可以用那種SQL注入技術來注入
3、識別出哪種資料庫
4、根據用戶選擇,讀取哪些數據
sqlmap支持五種不同的注入模式:
1、基於布爾的盲注,即可以根據返回頁面判斷條件真假的注入。
2、基於時間的盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。
3、基於報錯注入,即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。
4、聯合查詢注入,可以使用union的情況下的注入。
5、堆查詢注入,可以同時執行多條語句的執行時的注入。
sqlmap支持的資料庫有:
MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB
可以提供一個簡單的URL,Burp或WebScarab請求日誌文件,文本文檔中的完整http請求或者Google的搜索,匹配出結果頁面,也可以自己定義一個正則來判斷那個地址去測試。
測試GET參數,POST參數,HTTP Cookie參數,HTTP User-Agent頭和HTTP Referer頭來確認是否有SQL注入,它也可以指定用逗號分隔的列表的具體參數來測試。
⑼ sqlmap怎麼批量進行sql注入
1.什麼是SQL注入?
SQL注入是一種代碼注入技術,過去常常用於攻擊數據驅動性的應用,比如將惡意的SQL代碼注入到特定欄位用於實施拖庫攻擊等。SQL注入的成功必須藉助應用程序的安全漏洞,例如用戶輸入沒有經過正確地過濾(針對某些特定字元串)或者沒有特別強調類型的時候,都容易造成異常地執行SQL語句。SQL注入是網站滲透中最常用的攻擊技術,但是其實SQL注入可以用來攻擊所有的SQL資料庫。在這個指南中我會向你展示在Kali?Linux上如何藉助SQLMAP來滲透一個網站(更准確的說應該是資料庫),以及提取出用戶名和密碼信息。
2.什麼是SQLMAP?
SQLMAP是一個開源的滲透測試工具,它主要用於自動化地偵測和實施SQL注入攻擊以及滲透資料庫伺服器。SQLMAP配有強大的偵測引擎,適用於高級滲透測試用戶,不僅可以獲得不同資料庫的指紋信息,還可以從資料庫中提取數據,此外還能夠處理潛在的文件系統以及通過帶外數據連接執行系統命令等。
訪問SQLMAP的官方網站可以獲得SQLMAP更為詳細的介紹,如它的多項特性,最為突出的是SQLMAP完美支持MySQL、Oracle、PostgreSQL、MS-SQL與Access等各種資料庫的SQL偵測和注入,同時可以進行六種注入攻擊。
還有很重要的一點必須說明:在你實施攻擊之前想想那些網站的建立者或者維護者,他們為網站耗費了大量的時間和努力,並且很有可能以此維生。你的行為可能會以你永遠都不希望的方式影響到別人。我想我已經說的夠清楚了。
0x01 定位注入的網站
這通常是最枯燥和最耗時的一步,如果你已經知道如何使用Google?Dorks(Google?dorks?sql?insection:谷歌傻瓜式SQL注入)或許會有些頭緒,但是假如你還沒有整理過用於Google搜索的那些字元串的話,可以考慮復制下面的條目,等待谷歌的搜索結果。
⑽ SQLmap 指定參數注入
以下是一些小技巧
-p ad_groups(ad_groups是指定參數)
python sqlmap.py -r E:\ad.txt
-r 後跟的是指定文件,就是這個抓的這個介面的包,放在一個文件里。我是用burpsuite抓的。
文件目錄:C:\Users\Administrator\AppData\Local\sqlmap\output
找到對應文件後,直接刪除。
可能在對應的用戶下,不一定是admin
也可在掃描的時候加--purge