一、xss
原理:用户输入数据被当做前端代码执行。
第一个是用户能够控制输入
第二个是原本程序要执行的代码,拼接了用户输入的数据
用途:盗取Cookie,获取内网IP,获取浏览器保留的明文密码,截取网页屏幕,网页上的键盘记录。
检测方法:让浏览器弹窗,其中最经典的是
1.<script>alert(1)</script>
2.伪协议:<a href=javascript:alert(1) />1</a>
3.事件型:<img src=# οnerrοr=alert(1) />
其他绕过检测方法详见:
https://zhuanlan.zhihu.com/p/26177815
https://blog.csdn.net/qq_29277155/article/details/51320064
https://www.cnblogs.com/H4ck3R-XiX/p/12732356.html
1、反射型xss
提交数据成功实现了xss,但是只是对本次访问产生影响,不是持久型攻击
2、存储型xss
提交的数据成功的实现了XSS,存入了数据库,别人访问这个页面的时候就会自动触发。
一般出现在任何可能插入数据库的地方:用户注册时,留言板、上传文件的文件名、(管理员可见报错信息)
(1)同源策略
同域名、同端口、同协议。限制了Cookie的作用域。
原理:A网站只能访问A的Cookie,B网站只能访问B的Cookie,浏览器根据不同的网站自动填充不同的Cookie。
(2)使用xss平台
因为XSS payload 结构复杂,所以一般情况下我们都是使用XSS平台去获取cookie,建议隐私模式访问,避免非法XSS平台获取信息。
3、dom型xss
利用dom对象触发xss
DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。