- 每日一句:见框就兴奋,见框就插
- 本篇内容:XSS原理与特性
反射型XSS实战注意
一、XSS的原理与特性
1.什么是XSS:就是HTML代码注入
注入的本质:用户输入的数据当做代码执行了(HTML等前端语言JS、CSS、HTML)
注入的条件:
(1)用户能够控制输入
(2)原本程序要执行的代码,拼接了用户输入的数据,然后执行了
拼接的什么:拼接的HTML代码,一般是JS语句
2.XSS的危害
~盗取cooiker (主要)
~获取内网ip
~获取浏览器保存的明文密码
~截取网页屏幕
~网页上的键盘记录
3.防御
过滤字符:< > ’ " 四种符号;
用HTML实体编码解决(例如用PHP过滤)
4.XSS平台
为了方便利用各种复杂XSS语句,XSS平台应运诞生
xsspt.com 开放注册
xss9.com 需要邀请码
XSS平台大大方便了XSS攻击,只需要引入一个平台外部链接就可以实现功能
5.类别
反射型:一般危害不是太大,国内不是太重视。一般不点XSS链接就没事
存储型:一般发生在留言板上,上传的恶意代码被储存在数据库中,此后只要有人访问,就会被攻击
dom型:比较特别,日后细讲
6.盗取cooike的条件
人家登录了A网站且cookie没有失效
人家访问你发送过去的链接
7.如何检测存在XSS
最经典的弹窗语句:<script>alert(1)</script>
只要有弹窗,就说明有xss
8.xss注入的方式
(1)正常在url中打入
(2)使用伪协议触发
伪协议:不同于因特网上真实存在的协议,如http://,https://,ftp://
伪协议只有在特定环境下才可以执行(关联应用中使用)
例如:php:// tencent://(关联QQ)
经典代码:<a href=javascript:alert(1)>test</a>
(3)利用事件
理解:当满足某种条件时,就执行
例如:<img src='a.jpg' onerror=alert(1)/>
上述语句就是,先加载a.jpg图片,如果没成功,就弹个“1”
9.注意:html事件,可以直接百度,有很多事件(略)
二、反射型XSS实战注意
1.反射型XSS:只对本次有效
有时效性,有同源性。a站点上打了cookie,那么它只能偷走a站点上的cookie(当前页面的),其他的站点不能偷走,cookie是不能跨站点、跨ip、端口的。每个端口,每个站点都有一个cookie
2.XSS 不等于JS注入
XSS攻击手段很多,不能盲目的把XSS当作JS注入。
XSS应该包括js注入
3.XSS攻击真正需要JS,cookie保存在浏览器中,而JS可以调用浏览器
所以,XSS可以盗取cookie
4.漏洞:会对用户造成影响的bug
5.短链接欺骗
常常反射型xss链接很长,人们不会傻傻地去点击,这时候直接百度“短链接生成”,
变成短链接就可以更好的欺骗
6.找反射型xss,尽量不要用谷歌浏览器
浏览器在长期的更新中,有了安全意识,一个xss代码打进去,
就被谷歌浏览器拦截了,所以建议使用火狐浏览器测试
7.提供几个常用事件型代码
’ οninput=alert(1) // 在输入框输入东西被弹出,后边的“//”是注释
’ οnfοcus=alert(1) // 有人点击输入框就弹窗
’ οnfοcus=alert(1) autofocus// 自动检测输入框进行弹窗
三、总结
- XSS在实战中还是很常见的
- 熟练掌握XSS的原理、危害以及防御措施
- 多多实战,实战能查缺补漏