零基础如何学习 Web 安全?

学习防御最好的方式,就是先学习如何进攻


既然楼主说了是零基础,那么我就当你是个完全没有技术基础的文科生,来解释一下这个命题。


余弦的回答列出了一个很完善的框架,但是,假设题主是个文科生,他能看懂这个框架的意思吗?


我认为,对新人来说,学习的第一步,最重要的,不是框架,而是“概念”。很多的漏洞挖掘与利用并不需要较高的技术能力,只需要你拥有一定的好奇心与动手能力即可触发。


什么是web安全?


懂得了概念之后,再去看第一名的框架,学习效率将会高很多,那么接下来,由我以一个小学生做试卷的例子,来向诸君演示何谓“web安全”?


所谓的安全,就是防御,即“堵住漏洞”的意思,为了学习堵住漏洞,我们必须先知道什么叫做“漏洞”,如何找出“漏洞”,只要你能够找到漏洞,自然便能堵住它。

------------------------------------------


姓名:______ 考生编号:_______________


首先我们来看这个,试卷的名字和编号填写,这个部分有“漏洞”吗?



学生的姓名和编号都写在这儿,没有做任何保护措施,因此,你只要偷看了某人的试卷上的这部分内容,然后把你的试卷的上的姓名和考生编码写成和他一样的即可伪装出他的身份。


漏洞攻击成功
-------------------------------------------------------------------------------------------------------------------------------

一、诗歌补写

-------------------------------------------------------------------------------------------------------------------------------

1 床前明月光,___________。

2 春眠不觉晓,___________。


这道题有漏洞吗?



这道题的答案本来应该是“疑似地上霜”和“处处闻啼鸟”


But,问题中,并没有规定答案里不能添加标点符号,所以,我完全可以把“疑是地上霜,举头望明月,低头思故乡”以及“处处闻啼鸟,夜来风雨声,花落知多少”当做答案写进去。


漏洞再次进攻成功 :P

-------------------------------------------------------------------------------------------------------------------------------

二、数学运算(在括号内填入数字)

-------------------------------------------------------------------------------------------------------------------------------

3 500 + 400 * 3 / 2 + 1 = ( )

4 ( 1 + 2 ) / 3 * 400 +500 = ( )


这个问题有漏洞吗?



出题者规定了只能填入数字,但却没有说是什么数字,也没有规定多少位,那么我的答案可以是 中文数字「壹佰壹拾圆」、罗马数字「MCI」或「0000000000001101」。


漏洞第三次进攻成功 XXD

------------------------------------------

有人会疑惑上面的例子并没有达到什么目的,其实我是想告诉大家,所谓的 hack,是一种发现问题的方法,而不是发现漏洞。漏洞本身也应该先是一个问题 ,这个问题产生安全隐患,然后我们通过堵上这个漏洞来消解隐患,是为“web security”。


举个实操的例子来吧


我们设定一个进攻目标


盗取知乎账户

  • 第一阶段:什么技术都不懂
    • hack 账户名,注册一个名字叫「知乎」的账户,然后发送私信,要求回复账户/密码。
  • 第二阶段:懂点 HTML 了
    • hack 登录页,写个 HTML 页面伪装成知乎登录页发送给目标。
  • 第三阶段:学会了 Javascript
    • hack 登录页,通过在问题中插入攻击页面,在攻击页面中通过 JS 反向修改问题页到钓鱼页面。

这里举的例子并非意淫流,都是有非常大的成功机率的,涉及到技术点越少越难防御。


你可能感兴趣的:(零基础如何学习 Web 安全?)