記一次SQL隱碼攻擊實戰

發表於2016-09-08

【2016-09-05】:剛發現漏洞時,我就已經成功實現了注入,因為怕發到網上後被玩壞,一直沒有釋出。今天去看了看,原網頁已經無法訪問了,現在發出來應該就沒有什麼大問題了。


本文僅供學習交流,目的是為了構建更加安全的網路環境!

注入地址

某VIP會員專用系統 http://www.tcmpv.com/index.php/Home/Public/login.html

相關工具

注入工具:

超級SQL隱碼攻擊工具【SSQLInjection】http://www.shack2.org/article/1417357815.html

明小子

抓包工具:

Wireshark

注入過程

1.測試漏洞
1)測試 ‘
首先開啟網頁,如下圖:

一看這種很low的系統就有可能存在漏洞

廢話不多說,輸入單引號” ‘ “進行測試:

輸入單引號

測試結果

看到測試結果報資料庫錯誤,這就證明該系統存在SQL隱碼攻擊漏洞。而且這些粗心的程式猿連資料庫表名都直接暴露出來了(tp_login),這不就等於直接寫著:

“我有漏洞,歡迎注入!”

2)測試 ‘or”=’

進一步測試,輸入” ‘or”=’ “,點確定,直接就登入成功了,如下圖

輸入” ‘or”=’ “,點確定

登入成功

不用密碼,直接進去了,看來漏洞真的存在!

3)測試 3389′ and 1=1 and ‘a’=’a

接下來測試下能不能使用注入語句,這裡有兩個選擇:

  • 繼續使用or語句
  • 找到真實密碼

or語句前面已經有說明,這裡就以知道密碼的情況作說明(or語句原理相同)

網頁上直接給出了獲取密碼的方式:

加群,拿到密碼:3389

構造新的注入語句:” 3389′ and 1=1 and ‘a’=’a “,測試:

再次成功登入,確認可以進行注入攻擊。

接下來就可以對資料庫進行資料庫名(前面提到,登入錯誤資訊中已經包含了資料庫名”tp_login”,真是省事啊)、表名、列名……的猜測了

手動猜測的具體方法可以參考這裡:

sql注入例項分析http://www.cnblogs.com/leftshine/p/SQLInjection.html

當然手動猜測的量太大了,這麼勞神費力的事當然要交給程式來完成,不過還是強烈建議看看這篇文章來了解下SQL隱碼攻擊的基本原理,不然後面操作一片茫然。

2.構造資料包

因為該系統不能簡單通過網頁URL來傳遞資訊,所以我們需要構造資料包以POST方式傳送資料包來注入。

1)手動構造:

根據POST資料包結構手動構造一個用於注入的資料包,具體怎麼構造那就要去好好學習網路協議了……

2)抓包構造

這就簡單多了,我們直接抓取正常傳送的資料包,加以改造就可以用來注入了!

這裡我們使用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隱碼攻擊工具”根據上面的包自動生成,具體操作請參考軟體壓縮包中相應的使用說明。

3.注入

其實我們只要將抓取到的資料包粘程式序中,然後點選”自動識別”,軟體就會自動進行相應配置,然後看情況改改就可以了(一般情況下,自動配置就可以搞定了)。

配置完後,點選”傳送資料”驗證當前配置的資料包是否符合條件,若能夠正確返回網頁資訊,則配置可用:

正確返回網頁資訊

雖然圖中顯示”登入失敗”,但證明可以正確返回網頁資訊,配置可用!

4.獲取資料庫資訊

點選獲取資料

獲取資料

然後轉到資料中心,依次”獲取庫”、”獲取表”、”獲取列”、”獲取資料”:

資料庫資訊一覽無餘

可以看到,確實有名為”tp_login”的表和”3389″這個密碼。

接下來就可以隨心所欲的獲取資料了。

獲取到的資料

獲取到的管理員賬號資訊:

管理員賬號資訊

有了管理員賬號資訊,如何使用呢?上第二個軟體:”明小子”,其實它本身就是一個注入工具,不知道是不是年代太久遠了……好多功能不實用。這裡我們只用到”管理入口掃描”功能,如下圖:

管理入口掃描

獲取到了4個連結,挨個開啟看,發現這個可以用:

http://www.tcmpv.com/index.php/Admin/Public/login.html

管理員登入

輸入賬號密碼,登入

登入成功

登入成功,看到笑臉真是開心!

成功進入後臺

成功進入管理後臺,發現並沒有什麼價值的資訊,倒是有很多某視訊網站的VIP賬號,也不造這些萬人騎的賬號能不能用……

至此,整個SQL隱碼攻擊成功完成!

相關文章