0

我按照 meta.stackoverflow 中的建议编辑了问题,以提高问题的质量以便更好地理解:))

我正在使用 phpbb 3,刚刚下载了一个名为 Proxy Revealer 的 MOD,它主要用于检测和禁止 IP 地址,以下附加代码是 MOD 的一部分,正如您所见,ActionScript 使用 sendToURL 方法将 flash 变量传递给 PHP 端它使用 _GET 方法获取值,但问题是这些值始终为 NULL,我使用 burpsuite 进行了一些研究,并在客户端的标头请求中看到了这些值,但从未在 URL 栏中执行,甚至没有披露这就是它们来的原因作为 NULL

  • URL = example.com/index.php
  • 请求头 = index.php?value=3424124&another=32412342

如何在 PHP 变量中获取这些值,感谢您花时间阅读我的消息并祝您有美好的一天 :))

import flash.display.LoaderInfo;
import flash.errors.*;
import flash.events.*;
import flash.net.sendToURL;
import flash.net.URLRequest;
import flash.net.XMLSocket;
import flash.system.Capabilities;
import flash.system.Security;
import flash.xml.*;

// Retrieve passed FlashVars
var dhost:String = root.loaderInfo.parameters.dhost;
var dport:Number = root.loaderInfo.parameters.dport;
var flash_url:String = root.loaderInfo.parameters.flash_url;
var ip:String = root.loaderInfo.parameters.ip;
var extra:String = root.loaderInfo.parameters.extra;
var user_agent:String = root.loaderInfo.parameters.user_agent;

// Retrieve policy file from our XMLSocket server to allow socket connections
Security.loadPolicyFile("xmlsocket://" + dhost + ":" + dport);

// Get Flash Player version
var version:String = Capabilities.version;

// Our probe.php URL and the query string concatenated
var myURL:String = flash_url + "?mode=flash&ip=" + ip + "&extra=" + extra;
myURL += "&version=" + escape(version) + "&user_agent=" + escape(user_agent);

// Socket connection code
var sock:XMLSocket = new XMLSocket();

sock.addEventListener(Event.CONNECT, connectHandler);
sock.addEventListener(DataEvent.DATA, dataHandler);

sock.connect(dhost,dport);

function connectHandler(event:Event):void {
    var xmlRequest:String = "<data><request>getmyip</request></data>";
    sock.send(new XML(xmlRequest));
}

function dataHandler(event:DataEvent):void {
    var myXML:XML = new XML(event.data);
    var myIP:String = myXML.ip[0];
    myURL += "&xml_ip=" + myIP;
    var request:URLRequest = new URLRequest(myURL);
    sendToURL(request);
    sock.close();
}
4

2 回答 2

0

你看过http://php.net/manual/en/function.getallheaders.php吗?似乎只适用于一些 Apache 设置。

于 2013-03-30T03:47:35.963 回答
0

试试这个代码

if(function_exists('headers_list')){
    $header = "Headers: ";
    foreach (headers_list() as $name => $value) {
        $header .= "$value ";
    }
}

或尝试

$headers = apache_request_headers();
foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
于 2013-03-30T03:51:46.940 回答