XSS
xss,cross site scripting,又称跨站脚本攻击,其攻击的本质是让用户的浏览器运行一段刻意构造的脚本,其实用户的浏览器在加载页面时候会调用其中的脚本段,如果其中存在一段刻意构造的恶意脚本的话,就会被浏览器直接执行,造成攻击。
xss攻击分为三类
-
反射型xss
反射型xss的基本原理是:在一个url的参数中携带恶意代码,服务端对该参数没有进行过滤检查,直接输出到了给用户的页面中,进而在用户浏览器在接收该页面进行解析时,将执行该段脚本,实现攻击。其特点是恶意代码在url的参数中,并不存在服务端的数据库中,触发攻击需要用户点击该url
总结:服务端对url参数验证过程有漏洞 + url中参数会被输出到页面中 + 用户点击 -> 恶意程序脚本在受害者请求HTTP后得到一个即刻的响应时执行 -
存储型xss
存储型xss的基本原理是:在网站服务中提供发帖、微博等类似的服务,同时对于用户的帖子内容没有严格过滤,导致恶意的脚本段就直接存储到了网站数据库中,之后任何人访问该帖子,其浏览器都将运行该恶意的脚本,实现了xss攻击
总结:网站提供存储并展示用户提供的数据的服务 + 网站对用户输入需要存储到数据库的参数未做严格过滤 ->存储恶意脚本,存储内容被再次访问时被执行 -
DOM-based xss
DOM-based xss的基本原理是:在效果上和反射型xss类似,也是在url带上恶意代码,同时将该参数输出到页面中,浏览器在加载该页面时,执行了该代码。这个有点没理清,感觉像是反射或是存储型xss是利用对用户输入数据的验证不严谨的漏洞,而dom-based xss是同时利用对用户输入数据的验证不严谨的漏洞+页面组织上在进行dom编辑时对输出数据验证不严谨的漏洞。网上还有存储型的dom based xss这个待细看,先mark一下。
CSRF
csrf,cross site request forgery,又称跨站请求伪造攻击,其攻击原理是让用户在不感知的情况下,以用户的名义发送一个伪造请求给受攻击站点,从而在并“未授权”的情况下执行在权限保护之下的操作的一种网络攻击。更进一步说,之所以会存在这种攻击行为其本质是webserver对于一个请求操作是否来自用户真实的意图的判断不准确。
通常只采用cookie进行一个请求判断是否合法,会存在被csrf攻击的可能,这是因为当前的浏览器的cookie发送策略导致。浏览器有两种cookie策略
Session cookie(浏览器关闭后失效)
Third-party cookie(设置了失效时间,通常是比较长的时间段)
xss与csrf区别
xss:浏览器无法判断html中代码的合法性,执行了可能的恶意代码;->原因:服务端过滤用户提交的数据不严谨
csrf:服务器无法判断请求是否来自用户的真实意图,执行了恶意的操作;->原因:服务端对用户请求合法性的验证机制不严谨
网友评论