Python 图片注入js

Python 关于图片注入js

前段时间618呢,某宝上入手了几本python的书籍,对于一个PHPer来说,Python简直是打开了我新世界的大门啊!而只用python写过爬虫的我,就在端午假最后一天晚上,在《Python黑客攻防入门》P.91上翻到一篇好玩的东西——图片文件黑客攻击!(不是打广告哦)

基本原理

把一张bmp图片用python二进制文件模式(r+b)打开,插入一段注释开始符+JS代码+注释结束符,那么在页面中引入该图片,运行脚本也以图片的形式来运行,就可以在加载图片时,运行其中的js代码啦!
那么扩展一下,假如你进入了一个网页加载了一张图片,在该页面中输入了一些隐私信息,比如马云宝密码~~那通过图片中插入的js脚本是不是可以把这串密码发送到我指定的地址呢,我也不确定我没有实践过,插个眼等周末在玩。
这里就执行一个最简单的js,弹出一个框~

实现步骤

1.新建一张bmp位图 , 下载或者使用画图工具,生成一张bmp图片,在编辑器中打开,这里我用的是vscode中+hexdump扩展(show hexdump),打开可以看到这样子的:42对应ASCII码的B,4D则对应M,就是后面的BM啦,这个被称为魔数,只要这个不被破坏,那浏览器就能正确读这个位图文件;
bmp十六进制2.接下来新建一个python文件,用于二进制打开这张图片并且向其中插入js代码;
文件名我用了绝对路径,相对路径不行,这里再插个flag周末研究,嘻嘻~

#!/usr/local/bin/python3.6
# --- coding:UTF-8 ---
# @Author: fang
# @File: E:\VScode\workspace\Hack\ImageHacking.py
# @Date: 2020/06/28
# @Time: 00:45:08

# @Describe :bmp图片插入JS脚本
import os
fname = "E:/VScode/workspace/Hack/hello.bmp"

pfile = open(fname, "rb")
buff = pfile.read()
#替换掉可能引发错误的*与/
buff.replace(b'\x2A\x2F',b'\x00\x00')
pfile.close()

pfile = open(fname, "wb")
pfile.write(buff)
#以起始位置为基准,光标后移两位
pfile.seek(2,0)
pfile.write(b'\x2F\x2A')
pfile.close()

pfile = open(fname,"ab")
pfile.write(b'\xFF\x2A\x2F\x3D\x31\x3B')
pfile.write(open ('E:/VScode/workspace/Hack/hello.js','rb').read())
pfile.close()
print('success !')

3.写下一个超简单的js ,复杂点的js就按老规矩等不上班啦;

alert('test');
alert('bmp');

4.新建一个HTML ,主要的代码就两句,引入图片,使用脚本:如果不成功试试绝对路径哈~

<img src="hello.bmp" />
<script src="hello.bmp"></script>

5. 结果,正确的结果应该是图片可以正常显示,并且js运行有两个弹框~偷个懒,太晚了白天还要上班…
附一张bmp位图发生改变的图片收个尾
在这里插入图片描述
就写这些吧,第一篇博客,写的有点简陋,还请大家见谅~大致表达的意思就是图片文件的攻击,相信聪明的猿(媛)都能看懂哒。
后面还会更一些我觉得好玩的python及demo吧,嗯就这样~喜欢的小伙伴记得三连。
在这里插入图片描述

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值