XSS漏洞笔记

0x01xss跨站脚本攻击简介

xss漏洞是攻击者在web页面插入恶意的Script代码,当用户浏览该页面时,嵌入其中web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的。

0x02 xss类型

第一种:反射型XSS

反射型XSS只是简单的把用户输入的数据“反射”给浏览器.也就是说需要诱使用户“点击”一个恶意链接,才能攻击成功。反射型XSS也叫作“非持久型XSS”

第二种:储存型XSS

储存型XSS会把用户输入的数据“储存”在服务器端。这种XSS具有很强的稳定性

第三种:DOM Based XSS

实际上,这种类型的XSS并非按照“数据是否保存在服务器端”来划分的,从效果上来说也是反射型XSS单独划分出来的,因为DOM Based XSS 的形成原因比较特别。这是由于客户端脚本自身解析不正确导致的安全问题。


0x03 xss原理

反射型XSS的攻击原理

反射型XSS最常用,使用最广。通过给别人发送有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行。
特点:是非持久化,必须用户点击带有特定参数的链接才能引起。


储存型XSS的攻击原理

存储型的攻击脚本被存储到了数据库或者文件中,服务端在读取了存储的内容回显就是存储型。这种情况下用户直接打开正常的页面就会看到被注入
流程:
攻击者把恶意的XSS代码提交网站--->网站把XSS代码存储进数据库--->当页面再次被其他正常用户请求时,服务器发送已经被植入XSS代码的数据给客户端--->客户端执行XSS代码


DMO Based XSS的攻击原理

DOM-based XSS漏洞是基于文档对象模型Document Objeet Model 的一种漏洞。DOM允许程序或脚本动态的访问或者更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操作的.客户端的脚本程序可以通过DOM动态检查和修改页面内容,但它不依赖于提交数据到服务器端,从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格的确认,就会产生DOM-based XSS漏洞。

0x04 xss的防御

XSS漏洞,就是在输入的时候没有做严格的过滤,而在输出的时候,也没有进行检查,转义,替换等
所以防范的方法就是,不信任任何用户的输入,对每个用户的输入都做严格检查,过滤,在输出的时候,对某些特殊字符进行转义,替换等

 

 

0x05 xss的危害

危害:

  1. 窃取帐号或Cookie,冒充其身份登录,获取信息甚至操纵后台数据。
  2. 上传木马,用户浏览含有木马的页面时,在用户的设备中植入木马。
  3. 利用弹窗发送广告或垃圾信息。

 

0x06 那些地方存在xss漏洞

我认为只要用户可以输入的地方可能存在XSS漏洞,网站源码href、document、referer等属性或HTTP请求头可能存在dom型,而某些网站的搜索页面,尤其是URL地址参数显示搜索关键词的网站可能存在反射型,以及一些论坛的评论区、留言板没有对用户评论进行严格检查过滤,极其可能存在存储型。

 

 

0x07 各类型xss实际操作

反射性直接在url后进行添加<script>alert(/xss/)</script>

存储型对源码进行修改并保存

dom型确定js事件属性,针对不同事件属性进行构造,常用鼠标事件 例如oneclick、onemouseover。

' onclick=alert(/xss/) //


0x08 csrf和xss的区别

1.CSRF:需要用户先登录网站,获取 cookie。

XSS:不需要登录。

2. CSRF伪装成网站用户的请求攻击网站

  XSS利用的是任意身份

3.CSRF:利用网站本身存在的漏洞,请求网站的api

XSS:向网站插入恶意JS代码,然后通过HTML执行恶意代码,进行对用户的诱骗或种马

 

0x09 csrf是如何产生的

用户浏览并登录了网站,网站在返回给用户浏览器的信息中带上已登录的cookie,cookie信息在浏览器端保存,且用户没有退出登录网站,继续访问一个恶意网站,而恶意网站的某页面向网站发起请求,请求会带上浏览器端保存的用户登陆网站时的cookie,网站根据请求的cookie,判断为用户请求。网站会根据用户的权限处理恶意网站的请求,可能以用户的身份发送邮件消息甚至进行转账支付等操作,至此恶意网站就达到了伪造用户请求网站的目的。

 

posted @ 2021-01-22 04:48  M1sc  阅读(164)  评论(0)    收藏  举报