为了参加“大比武”,我临时抱佛脚学习了web安全

起因

事情的起因是这样的,之前参加民兵训练的队长给我发来么一个消息:
file
我寻思着,”大比武” 是什么东西?
file
原来是县里举办的大比武,应该是为民兵招一些特长类的人才,有一个网络攻防的名额

file
file
但是,我也不会网络攻防呀,我只是一名小前端

file
file
嗯。。。,有补助,那我可以试试
file

于是,我就开始了解一些网络安全的东西,先从我较为熟悉的web安全开始,所以就看到了这本书《白帽子讲web安全》,本视频主要是讲下我从这本书中学到的一些攻防技术。

那我们就开始喽。

吴翰清

这本书的作者可了不起,他叫吴翰清,人称道哥,中国年轻一代顶级黑客,阿里云首席安全科学家。

你可能没有听过他的名字,但是你一定知道他所在的公司,那就是阿里巴巴,什么!你不知道阿里巴巴,那你肯定知道马云吧,他的支付宝,淘宝可是有几亿的用户在使用。

传闻吴翰清在面试阿里时仅用3分钟便黑进阿里内网,马云爸爸下令高薪挽留,但是这是传闻,吴翰清在微博公开回应了此事。

白帽子讲web安全

接下来,我们要来学习书中的提到的一些web攻防的知识了,先从xss攻击开始吧。

XSS攻击

新浪遭xss攻击事件

2011年6月28日,新浪微博出现了一次比较大的XSS攻击事件。大量用户自动发送诸如:“郭美美事件的一些未注意到的细节”,“惊爆!范冰冰艳照真流出了”等等 微博和私信,并自动关注一位名为hellosamy的用户。

这次事件就是被xss攻击了,导致大量带V的认证用户中招转发蠕虫,事后微博也迅速关闭了病毒页面,和hellosamy用户的主页。
是什么?
XSS攻击,又叫跨站脚本式攻击,就像上面新浪遭xss攻击事件的一样,攻击者可以在网站上注入恶意的客户端代码,若受害者运行这些恶意代码,攻击者就可以突破网站的访问限制并冒充受害者。

怎么防御xss

那么怎么防御xss攻击呢,书中主要介绍了以下三种方法:
1.HttpOnly
2.输入输出检查
3.使用安全的编码函数

CSRF攻击

小明的悲惨遭遇

这一天,小明同学百无聊赖地刷着QQ邮件,大部分都是没营养的通知、验证码、聊天记录之类。但有一封邮件引起了小明的注意:

甩卖比特币,一个只要998!!

聪明的小明当然知道这种肯定是骗子,但还是抱着好奇的态度点了进去。果然,这只是一个什么都没有的空白页面,小明失望的关闭了页面。一切似乎什么都没有发生……

这平静的外表之下,黑客的攻击已然得手。小明的qq邮箱中,被偷偷设置了一个过滤规则,这个规则使得所有的邮件都会被自动转发到hacker@qq.com。小明还在继续刷着邮件,殊不知他的邮件正在一封封地,如脱缰的野马一般地,持续不断地向着黑客的邮箱转发而去。

不久之后,小明的域名就被黑客偷偷的转让了,还有一些泄露的邮件等,这些再也无法挽回了。。。

是什么?

上面的小明就遭受了CSRF攻击,又叫跨站请求伪造,攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户,对被攻击的网站执行某项操作的目的。

CSRF攻击是一种单向攻击机制,XSS攻击是双向攻击机制。

怎么防御CSRF

那么怎么防御CSRF攻击呢,书中主要介绍了以下三种方法:
1.验证码
2.Referer Check
3.Anti CSRF Token

点击劫持攻击

Falsh遭点击劫持事件

Adobe公司的Falsh出现过严重的点击劫持事件,攻击者制作了一个Falsh游戏,诱使用户来玩这个游戏,这个游戏就是让用户去 点击按钮,每次点击这个按钮位置都会发生变化,通过这一系列的点击,就打开了用户的摄像头。

是什么?

点击劫持是一种视觉上的欺骗手段,攻击者使用一个透明的,不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,在用户不知情的情况下点击了透明的iframe页面。

怎么防御点击劫持

那么怎么防御点击劫持呢,书中主要介绍了以下2种方法:
1.禁止iframe嵌套
2.X-Frame-Options

SQL注入

SQL是一种数据库,注入数据库攻击最为致命,设想你如果可以通过SQL注入一个命令到微信后台的数据库,注册一个超级管理员权限,你在微信上就可以为所欲为了,想要谁的数据就弄谁的数据。

TalkTalk信息泄露事件

[该类型的内容暂不支持下载]
2015年10月份,一名年仅15岁的黑客,通过大名鼎鼎的SQL注入,在TalkTalk上(英国电话和宽带供应商)获取了400万用户的隐私数据。

事后公司代表说道:“这是最简单的黑客技术”,我们来看看一段平白无奇的SQL是怎样的:

SELECT * FORM user

上面这段sql的意思是,获取某个数据库下user的所有数据,当然Talktalk事件的注入的sql没有这么简单。

是什么

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息

sql注入要满足以下两个条件:
1.用户能够控制数据的输入
2.原本要执行的代码,拼接了用户的输入

怎么防御sql注入攻击

那么怎么防御sql注入呢,书中主要介绍了以下4种方法:
1.使用预编译语句
2.避免使用动态的sql语句
3.检查数据类型
4.使用安全函数

最后,我想借用某大佬的话:网络安全与每个人息息相关,没有网络安全就没有国家安全,就没有经济社会稳定运行。

如果你喜欢这个视频的话,务必点赞投币三连转发,这对我们会有非常大的帮助,那么我们下次再见。

本文系作者 @ 原创发布在 极客猿小兵的博客。未经许可,禁止转载。


极客猿小兵 » 为了参加“大比武”,我临时抱佛脚学习了web安全

发表评论