xss原理和特性:
xss:将用户的输入当作前端代码执行
注入攻击的本质,是把用户输入的数据当做代码执行。
这里有两个关键条件:
第一个是用户能够控制输入
第二个是原本程序要执行的代码,拼接了用户输入的数据
XSS主要拼接的是什么:
XSS拼接的是网页的HTML代码,一般而言我们是可以拼接出合适的HTML代码去执行恶意的JS语句(总结:xss就是拼接恶意的HTML)
xss能做什么:
盗取Cookie(用的最频繁的)
获取内网ip
获取浏览器保存的明文密码
截取网页屏幕
网页上的键盘记录
xss类型:
反射型:你提交的数据成功的实现了XSS,但是仅仅是对你这次访问产生了影响,是非持久型攻击
存储型:你提交的数据成功的实现了XSS,存入了数据库,别人访问这个页面的时候就会自动触发
DOM型:基于dom对象的xss
怎么检测存在XSS:
一般是想办法让浏览器弹窗(alert) 最经典的弹窗语句
<script>alert(1)</script>一般证明XSS是否存在,就是在正常页面传参然后构建参数让他弹窗就是存在XSS了
XSS执行的三种方法:
标签法:<script>alert(123)</script>
伪协议:555
事件法:<a οnmοusemοve=alert(888)>8888
为协议是什么:
一种不同与真实协议的协议,只有关联应用才可以用(例如:javascript:alert(1))
xss的过滤方法:
进行转义实体编码输出,加标签,正则匹配替换
常用的事件有哪些:
onerror(加载错误时触发),onload(加载成功时触发),oninput(输入框输入时触发)
如何防范xss
转义字符输出,用白名单验证、HTML实体化
xss要成功执行的条件是什么:
用户可以控制输入,执行代码拼接用户输入数据
反射型XSS具体使用方法
比如百度存在反射型XSS,然后你构建可以窃取Cookie的JS语句,然后传参点在URL那里,然后我们通过短链接将他变为短链接,然后发给想要获取别人信息的人。然后人家如果登陆状态访问了就会触发XSS
XSS一般在什么业务场景容易遇见?
重灾区:评论区、留言区、个人信息、订单信息等
针对型:站内信、网页即时通讯、私信、意见反馈
存在风险:搜索框、当前目录、图片属性等
靶场:
题目:
1.当我们输入<script>alert(1)</script> 发现没有出现弹窗
2.我们可以换别的方法:当我们输入伪协议的方法发现还是不行,那使用事件的方法试试
3.使用事件方法
常用的有 onerror、onload(成功加载执行)oninput (有输入框,输入的时候触发)
4.拿到flag
版权归原作者 XD前端 所有, 如有侵权,请联系我们删除。