一、前言
最近在網上閑逛的時候,發現了一個涉H的小電影網站,剛好一直想找個網站練練手,那就選擇它吧,通過自己的一頓折騰,終于利用sql注入漏洞成功拿到了數據庫的數據,下面整個找洞,挖洞的大概過程。
二、收集信息,尋找漏洞,利用漏洞
0x01—-目錄掃描
這里使用御劍加進行掃描,發現了一個robots.txt文件,通過查看該文件,發現了這個網站是在國內某個開源cms基礎上進行的二次開發,
于是我立馬去下載了這個cms源碼,因為是二次開發的網站,很多漏洞肯定是已經修補了的,于是把源碼放一放,思路繼往下走。
接著等待御劍掃描完畢之后,果然跟預料中的一樣,沒有爆出后臺路徑與其他關鍵的目錄信息,看樣子是做了特意的隱藏了,不過沒關系,只有耐心,就不會找不到漏洞的。
0x02—-查看開放的端口、是否存在CDN
通過nmap,發現開放了3306端口,應該是使用的MySQL數據庫了;
接著利用超級ping發現這個網站沒有使用CDN(一般沒有使用CDN的網站,基本就是個小網站了,擼下來的難度又降低了些)直接掌握這個網站的真實IP,原來是服務器在香港。
0x03—-尋找漏洞、利用漏洞
1.進入網站尋找可能存在漏洞的點,
首先對整個網站進行了瀏覽,發現整個網站做工,有些low,沒有上傳的地方,
倒是存在注冊功能,登錄功能及購買小電影會員輸入會員碼的功能,
看遍整個網站發現這三個點可以嘗試是否存在sql注入,說干就干。
2.切到注冊界面開擼—-打開BurpSuite,抓注冊界面的數據包,CTRL+R丟到Repeater模塊中測試;
通過測試,注冊界面這里,應該做是了相應的過濾,沒有找到注入點。
3.接著繼續往下擼—-切到登錄框,同樣的操作,丟到Reapter模塊中去:
此時隨便輸入的賬號跟密碼,網頁此刻是正常的;在username=111后加上單引號,嘗試:
此時,可以發現狀態碼是500了,說明服務器出錯了;說明我們輸入的單引號被當作代碼在數據庫中執行了,可以確定這里存在SQL注入;
為了驗證漏洞,在username=111后面輸入“’ — wq”語句后,發現頁面正常了,可以確定了存在sql注入點,這個注入點是因為單引號閉合引起的;
接著將這個數據包保存成txt文件,利用sqlmap進行跑包(如何利用sqlmap跑txt文件教程多,就不細說了),等待結果如下:
果然存在注入點,數據庫是mysql,注入點是time-based blind類型(時間型盲注),我嘗試了用了—dbs,獲得如下兩個數據:一個MySQL自帶的數據庫,另一個就是這個小電影的數據庫了,這個W開頭的數據庫里肯定存在讓我感覺興趣的東西;
當我嘗試用這個注入點獲得更多的數據的時候,
我發現“時間型盲注”獲取數據實在是太慢了,得一個字母一個字母得去猜,
于是我暫時先放棄了,畢竟還有一個“輸入會員碼的功能”的點還沒有測試,萬一有驚喜呢。
4.切換到“輸入會員碼功能”--又是一樣的操作,抓跑丟到burp suite中去,如下圖:
隨意輸入一串字母,提示會員碼不存在,網頁是正常的;接著,在這串字母后,加上單引號,如下圖:
加上單引號之后,網頁報錯,說明這里也存在sql注入點;接著將數據包保存成txt文件,利用sqlmap進行跑包,等待結果如下圖:
這是一個“聯合查詢”注入點,這個注入點讀取數據就比之前那個快了很多,
然后利用sqlmap常用參數—dbs獲取了當前網站的數據庫,
利用—tables獲取了整個數據庫中的表及一些重要表的內容,如下圖:
獲得該網站的管理員的賬號也密碼,登錄IP,登錄時間,這些都是十分有用的東西,得好好收起來。
至此,就是如何利用尋找漏洞,利用漏洞的過程,通過上述操作已經成功的獲得了這個網站中的數據庫數據。
PS:掌握了,管理員的賬號與密碼之后,我在數據中的一個存在操作日志的表中,找到了后臺登錄地址,果然是做了隱藏,掃描工具根本不可能掃到,除非運氣爆棚;
利用賬號與密碼成功登錄了后臺,拿到掌握了后臺之后,某天跟一個大兄弟在一起時,他對這個線索很感興趣,就順手把這個線索給他了,目前應該還在辦理中,等過段時間再去打聽下。
三、總結與思考
1.思路清晰,做好信息收集,利用已經掌握的信息尋找可能存在漏洞的位置,手工判斷注入點很重要;
2.運用burpsuite尋找注入點,一定要細心觀察返回包的變化與返回的信息;
3.利用sqlmap跑數據時,“聯合查詢”的注入點跑包速度更快;
4.找不到網站管理后臺路徑時,可以嘗試在數據庫的表中尋找;
5.文章只是學習交流,不能做違法犯罪的事情。