美文网首页
《Web前端黑客技术解密》读书笔记(第三、四、五章)

《Web前端黑客技术解密》读书笔记(第三、四、五章)

作者: 艾特TT | 来源:发表于2016-11-08 23:45 被阅读38次

本文地址:http://www.jianshu.com/p/486b3a10efb2

第三章 前端黑客之XSS

XSS类型

XSS有三类:反射性XSS(也叫非持久型XSS)、存储型XSS(也叫持久型XSS)和 DOM XSS

  • 反射性XSS

发出请求时,XSS代码出现在URL中,作为输入提交到服务端,服务端解析后响应,然后XSS出现在响应,然后浏览器解析执行。

// 构造url http://foo.com/reflect.php?x=<script>alert(1)</script>
// 还可以构造base64加密方式
x=data:text/html;base64,PHNjcmlwdD5hbGVydCgnRVZBTCEhIScpPC9zY3JpcHQ+
  • 存储型XSS

提交数据会存储在服务端,比较隐蔽

常见输入点

  • document.URL
  • document.URLRnencoded
  • document.location(及location其他属性)
  • document.referrer
  • window.location
  • window.name
  • xhr(请求相关数据)
  • document.cookie
  • 表单值

常见输出点

直接输出HTML内容

  • document.write()
  • document.writeln()
  • document.body.innerHtml=...

修改DOMshu树及事件

  • document.forms[0].action= ...
  • document.attachEvent()
  • document.create()
  • document.execCommand()
  • document.body
  • window.attachEvent()

替换document URL

  • document.location=...
  • document.location.hostname=...
  • document.location.replace
  • document.location.assign()
  • document.URL=...
  • window.navigator...

打开或修改窗口

  • document.open
  • window.open
  • window.location.href=...

直接执行脚本

  • eval
  • setInterval
  • setTimeout

第四章 前端黑客之CSRF

全称 Cross Site Request Forgery(跨站请求伪造)

伪造请求

伪造GET

正常网站 a.com,恶意网站 b.com,在b站通过创建imgscriptlink等标签,诱惑用户访问b站,就跨站发送GET请求

注意

  • 如果用户在a.com中是登陆的,在跨站请求时也会带上cookie等相关信息,请求头只有 referer 不同。
  • 本地Cookie与内存Cookie在这种CSRF攻击中对于IE浏览器有些不同,其不允许a网站的本地Cookie在跨域中带上,除非在HTTP响应中设置P3P(Platform for Privacy Preferences)。非IE没有这个限制

伪造POST

通过在恶意网站创建 form 添加 form的method为post,可以做到伪造POST请求,其他请求也类似

攻击类型

按攻击方式分为:HTML CSRF攻击、JSON HiJacking攻击和Falsh CSRF攻击

HTML CSRF攻击

  • HTML

通过设置 src/href 等地址都可以发起GET请求

<link href=''>
<img src=''>
<img lowsrc=''>
<img dynsrc=''>
<meta http-equiv='refresh' content="0; url=''">
<iframe src=''>
<frame src=''>
<script src=''></script>
<bgsound src=''>
<embed src=''>
<video src=''>
<audio src=''>
<a src=''></a>
<table background=''></table>
// ...
  • CSS
@import ''
background:url('')

对于POST请求只能通过 form 形式

JSON HiJacking

对AJAX响应中最常见的JSON数据类型进行劫持攻击。尤其是JSONP形式url中的callback

Falsh CSRF攻击

第五章 前端黑客之界面操作劫持

界面操作劫持分为三种

点击劫持(Clickjacking),拖动劫持(Drag & Drop jacking),触屏劫持(Tapjacking)

  • 在浏览器中,拖放操作是不受“同源策略”限制的,拖动这些链接的过程中可能会有session keytoken

劫持原理

透明层+iframe

  • 拖放通过dataTransfer对象(有个getData(), setData()方法)

  • 拖放函数有:

    • 鼠标拖动一个鼠标时:ondrag,ondragstart,ondragend
    • 将对象拖动到一个有效的目标时,目标对象会触发:ondragenter,ondragover,ondragleave,ondrop
  • 很多浏览器,尤其是移动端,可以滑动跨域

附原书购买地址: http://item.jd.com/11181832.html

相关文章

网友评论

      本文标题:《Web前端黑客技术解密》读书笔记(第三、四、五章)

      本文链接:https://www.haomeiwen.com/subject/ukszuttx.html