XSS 漏洞介绍
跨站脚本攻击(Cross Site Scripting),恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
xss特点:能注入恶意的HTML/JavaScript代码到用户浏览器网址上,从而劫持会话
xss漏洞类型:
1. 反射型 XSS
反射型XSS又称非持久性XSS,这种攻击往往具有一次性。
攻击者通过邮件等形式将包含XSS代码的链接发送给正常用户,当用户点击时,服务器接受该用户的请求并进行处理,然后把带有XSS的代码发送给用户。用户浏览器解析执行代码,触发XSS漏洞。
例如:
<?php
echo $_GET[“uname”];
?>
当用户访问 url?uname=< script>alert(“hello”);< /script>时,触发代码,弹出对话框。
2. 存储型 XSS
存储型XSS又称持久型XSS,攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性。
攻击者在论坛、博客、留言板中,发帖的过程中嵌入XSS攻击代码,帖子被目标服务器存储在数据库中。当用户进行正常访问时,触发XSS代码。
3. DOM型 XSS
DOM型XSS全称Document Object Model,使用DOM动态访问更新文档的内容、结构及样式。
xss漏洞利用:
2.1 XSS 盗取 Cookie
2.1.2 反射 XSS 盗取Cookie
存在反射型XSS漏洞的站点位置
2.1.3 利用 Cookie 会话劫持
打开Cookie.txt文件,找到Cookie值,访问目标站点,修改Cookie为Cookie.txt文件中的内容。
2.1.4 劫持会话后的操作
1、进入后台寻找上传点等进一步利用漏洞给上传一句话Webshell。
2、修改配置等。
2.2 XSS 篡改网页链接
2.2.1 JS 代码讲解
window.onload 当窗口加载时,执行匿名函数。
使用for循环遍历所有获得的链接a标签,并将a标签中的url替换成想要跳转的url。
2.2.2 XSS 篡改链接
将篡改代码注入到对应的XSS位置。
2.2.3 篡改链接指向流量 URL
刷流量,利用带有XSS漏洞的页面,将所有a标签的url替换成指向流量的url,使得所有用户在这个网页点击的任何链接都跳转到该流量站点,使得站点的流量增多。
2.2.4 篡改链接指向恶意 URL
Beef 进行恶意链接生成,以及利用hook.js执行其他命令。
xss漏洞的防御:
输入验证。
数据消毒,过滤有害输入,如<> ’ " # & JavaScript expression等。
黑名单,过滤可能造成危害的符号及标签
白名单:仅允许执行特定格式的语法。