i春秋 小漏洞也有大梦想
i春秋上的课,提到了一些概念,学习并记录。
此文主要以了解概念为主,没有代码和实战。
水坑式攻击
百度定义:
“水坑式攻击”,是指黑客通过分析被攻击者的网络活动规律,寻找被攻击者经常访问的网站的弱点,先攻下该网站并植入攻击代码,等待被攻击者来访时实施攻击。
这种攻击行为类似《动物世界》纪录片中的一种情节:捕食者埋伏在水里或者水坑周围,等其他动物前来喝水时发起攻击猎取食物。水坑攻击已经成为APT攻击的一种常用手段。
百度解释:
水坑攻击则利用了被攻击者对网站的信任。水坑攻击利用网站的弱点在其中植入攻击代码,攻击代码利用浏览器的缺陷,被攻击者访问网站时终端会被植入恶意程序或者直接被盗取个人重要信息。
水坑攻击利用的是什么?
水坑攻击相对于通过社会工程方式引诱目标用户访问恶意网站更具欺骗性,效率也更高。水坑方法主要被用于有针对性的间谍攻击,而Adobe Reader、Java运行时环境(JRE)、Flash和IE中的零日漏洞被用于安装恶意软件。
解释一下:
属于APT攻击(高级持续性威胁)实际上就是利用漏洞,埋下陷阱,等待上钩。
jsonp
百度定义:
jsonp是JSON的一种”使用模式”,用于解决主流浏览器的跨域数据访问。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
JSONP协议的解释:
JSONP是一种非正式传输协议,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。
JSONP是如何工作的:
利用<script>标签没有跨域限制的“漏洞”来达到与第三方通讯的目的。
当需要通讯时,本站脚本创建一个<script>元素,地址指向第三方的API网址,
形如: <script src="http://www.example.net/api?param1=1¶m2=2"></script>并提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递)。
第三方产生的响应为json数据的包装(故称之为jsonp,即json padding),
形如: callback({"name":"hax","gender":"Male"})。这样浏览器会调用callback函数,并传递解析后json对象作为参数。本站脚本可在callback函数里处理所传入的数据。
作者:贺师俊
链接:https://www.zhihu.com/question/19966531/answer/13502030
来源:知乎
referer校验
referer字段存在于请求包中,主要作用是表明你的请求域来自哪里。
这是CSRF的一种防御手段
验证HTTP Referer字段
根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。在通常情况下,访问一个安全受限页面的请求必须来自于同一个网站。比如某银行的转账是通过用户访问http://bank.test/test?page=10&userID=101&money=10000页面完成,用户必须先登录bank.test,然后通过点击页面上的按钮来触发转账事件。当用户提交请求时,该转账请求的Referer值就会是转账按钮所在页面的URL(本例中,通常是以bank. test域名开头的地址)。而如果攻击者要对银行网站实施CSRF攻击,他只能在自己的网站构造请求,当用户通过攻击者的网站发送请求到银行时,该请求的Referer是指向攻击者的网站。因此,要防御CSRF攻击,银行网站只需要对于每一个转账请求验证其Referer值,如果是以bank. test开头的域名,则说明该请求是来自银行网站自己的请求,是合法的。如果Referer是其他网站的话,就有可能是CSRF攻击,则拒绝该请求。
验证HTTP Referer字段 http://blog.csdn.net/zitian886/article/details/46630085