本文目录一览:
黑客零基础入门
对于零基础的朋友第一步要做的是掌握web前后端基础和服务器通讯原理,前后端包括h5,js,PHP,sql等等。
第二步要做的是熟悉当下主流的漏洞原理及利用,包括但不限于,xss,csrf,文件包含,文件上传,远程代码执行,sql注入等等。
第三步就是实战挖掘主流漏洞及代码审计漏洞,本着非授权即违法的原则,大家 不要去找非授权的网站去黑,大家可以在各大SRC平台上挖掘漏洞,SRC即漏洞响应平台。
进入学习阶段:
首先是我给大家推荐的是前端的html/css/js + php进行学习,前端的这些都是肯定需要学习的知识,至于后端的编程语言我建议还是php,主要是因为入门学习快、目的呢就是更快的接触到php+mysql开发。
这样前前后后的知识加起来才能在知识链上完整构成一个网站,这样做的好处的就是快速了解一个网站如何开发,什么是前端和后端,什么是http,什么是数据库,网站的数据都存储在哪?
当然不怕枯燥的话从C语言开始学起更佳,相比于C语言这种学习了半载一年还不一定有什么成果的玩意,直接用工具按照教程来达到目的会容易且有趣的多,但学习C语言在很多的时候,往往能够学习到C语言之外的东西,对程序的运行,内存的分配与管理,数据结构甚至是编程的书写习惯,都有非常大的好处,可以说,C语言学会后再学习其它大部分的语言都会快得多。
前端程序员必须知道的 Web 漏洞,快来看看
随着互联网的发展,早已经不是仅限于简单的网页或是社交,电商购物、银行转账、企业管理等等。上次看到一个新闻,后台程序员离职后,利用职位之便,每天还不断的给自己转账,转了好多次才被发现,想想这多可怕。或者会窃取重要的商业信息,所以 Web 安全也是非常值得注意的。
什么是 Web 安全?
黑客利用网络操作系统的漏洞和 Web 服务器的 SQL 注入漏洞等,得到 Web 服务器的控制权,轻则篡改、删除、添加数据,重则窃取重要的商业信息、转账等,更严重的就是在网页中植入恶意代码,使网站受到不可预期的侵害。
常见的攻击可分为三类:XSS、CSRF、SQL注入。
Cross Site Scripting 跨站脚本攻击,为了与 CSS 区分,所以简写为 XSS 。
恶意攻击给 Web 页面植入恶意的 Script 代码,当用户浏览该网页的时候,嵌入 Web 里面的 script 代码会被执行,从而达到攻击的效果。
讲直白点,就是恶意攻击者通过在输入框处添加恶意 script 代码,用户浏览网页的时候执行 script 代码,从而达到恶意攻击用户的目的。
1.1、XSS 的危害
1.2、XSS 的攻击类型
发出请求时,XSS代码会出现在 url 中,作为输入提交到服务器端,服务器再返回给浏览器,然后浏览器解析执行 XSS 代码,这一过程像一次反射,所以称之为反射型。
这种类型的攻击,通常是把 XSS 攻击代码放入请求地址的 数据传输部分,如:
提交的 XSS 代码会存储在服务器端,如数据库、内存、文件系统内,下次请求目标页面时不再提交 XSS 代码。
文档型的 XSS 攻击不会经过服务器,作为中间人的角色,在数据传输过程中劫持到网络数据包,然后修改里面的 html 文档。
1.3、XSS 的防御措施
措施1:编码。
对这些数据进行 html entity 编码。客户端和服务器端都需要进行转义编码。
转义后为:
放入上边的代码中,还是会自动解析为上边的代码,所以放到外边。
措施2:过滤。
移除用户上传的 DOM 属性,如上边的 onerror。
移除用户上传的 style、script、iframe 节点。
措施3:利用 CSP
浏览器中的内容安全策略,就是决策浏览器加载哪些资源。
Cross site request forgery 跨站点请求伪造。
攻击者诱导受害者进入第三方网站,向被攻击网站发送跨站请求,利用被攻击者在被攻击网站已经获取的注册凭证,绕过后台的用户验证达到冒充用户对攻击网站进行的某种操作。
CSRF 攻击特点:
2.1、CSRF 的危害
2.2、CSRF 的攻击类型
使用非常简单,只需要一个 http 请求。
比如页面中的一个图片添加链接,还有 iframe、script ,最容易完成 CSFR 攻击,且不易被用户发现,隐蔽性超强。
由于 get 接口是最常见的一种 CSRF 攻击类型,所以很多重要的接口不适用 get 方式,使用 post 一定程度上可以防止 CSRF 攻击。
这种类型的 SCRF 攻击,通常使用的是一个自动提交的表单。简单讲就是伪造一个自动提交的表单,一旦访问页面时,表单就会自动提交。
如:
比起前两个,这个类型的比较少见,链接类型的攻击必须要用户点击链接,才能触发。
通常在论坛中发布的图片嵌入恶意的链接,或以广告的形式诱导用户点击中招。所以我们在邮箱中看到乱七八糟的广告,尽量别点击,防止遇到三方攻击。
伪造一种新型的攻击方式,用户误以为是在网站正常登录,实际上是使用账户和密码登录到了黑客网站,这样黑客可以监听到用户的所有操作,甚至知道用户的账户信息。
2.3、CSRF 的防御措施
措施1:检查 http 头部的 referer 信息
referer 包含在请求头内,表示请求接口的页面来源。
服务端通过检查 referer 信息,发现来源于外域时,就可以拦截请求,通过阻止不明外域的访问,一定程度上可以减少攻击。
措施2:使用一次性令牌
使用一次性令牌做身份识别,黑客是无法通过跨域拿到一次性令牌的,所以服务端可以通过判断是否携带一次性令牌,就可以排除一部分的非法操作者。
措施3:使用验证图片
服务端生成一些文本和数字,在服务端保存这份信息,同时以图片的形式在客户端展现,让用户去合法填写信息,当 CSRF 攻击时,拿不到这个验证码的时候,无法向服务器提供这个信息,导致匹配失败,从而识别它是非法攻击者。
这个应用非常常见,之前登录的时候,需要填写图形验证码。
现在滑动图片验证也非常常见。
SQL 注入,一般发生在注册、评论、添加等,只有有用户输入的地方,就有可能发生 SQL 注入。SQL 注入是一种常见的 Web 安全漏洞,攻击者会利用这个漏洞,可以访问或修改数据,利用潜在的数据库漏洞进行攻击。
所谓SQL注入,就是通过把SQL命令插入到Web 表单 提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到 SQL注入式攻击 .
3.1、SQL 注入危害
任意的账号都可以登录,可以进行任意的操作,粗暴点讲,就是随便来。
3.2、 SQL注入分类
当输入的参数为整数时,则有可能存在数字型漏洞。
当输入参数为字符串时,则可能存在字符型注入漏洞。数字型与字符型注入最大的区别在于:数字型不需要单引号闭合,而字符型一般需要使用单引号来闭合。
字符型注入最关键的是如何闭合 SQL 语句以及注释多余的代码。
其实我觉得 SQL 注入只有两种类型:数字型与字符型。很多人可能会说还有如:Cookie 注入、POST 注入、延时注入等。
的确如此,但这些类型的注入归根结底也是数字型和字符型注入的不同展现形式或者注入的位置不同罢了。
以下是一些常见的注入叫法:
3.3、SQL注入的防范措施
凡是用户输入的地方,我们都应该防止黑客攻击,永远不要相信用户的输入。所以对应的防御措施分别有:
前后端分离之后,前端每天都会接触到很多接口。发送网络请求的时候,有些接口就会使用 get 方法。最常见的传参方式就是,直接在 url 地址后面加参数。
直接采用这种方式传输数据,如果数据被劫持或抓包工具偷走之后,就会直接被人盗取走,特别危险。若是采用接口加密,如下:
上边那个看不懂的一长串符号,正是经过加密的数据。
接口加密就是将接口请求调用中传递的参数进行加密,目的就是为了保证接口请求中传递参数和返回的结果的安全性,一般比较敏感数据,如身份证、电话号码、账号、密码等需要进行加密。
常见的加密方式:
加密方式较多,可以根据自己具体的需要和项目语言选择其中一种。
加密之后的数据更安全,那我们能不能将接口所有的数据都进行加密呢?加密是非常消耗资源的,如果有大批量的数据都进行加密时,返回数据需要的时间就更长,会直接影响用户体验。所以我们进行加密时,只需要对敏感的重要的信息进行加密。
好了我今天的文章就到此结束了,本篇文章没有介绍到的 web 安全,欢迎评论区交流!
求:攻击网站的步骤?
在认识黑客程序前先来简单了解黑客攻击的基本步骤,这样可以使我们后面的学习更有针对性。因为我们可以针对这些攻击步骤采取相应的防御和清除措施。
黑客要实施攻击,一般来说必须有3个基本步骤:收集信息(踩点)→选择目标,实施攻击→上传黑客程序,下载用户数据。黑客攻击的关键一步就是收集信息,也就是踩点。
在攻击者对特定的网络资源进行攻击以前,他们需要了解将要攻击的目标的环境,这需要收集汇总各种与目标系统相关的信息,包括目标网络结构、用户数、目标机器类型、所用域,以及IP地址和操作系统等。
攻击者收集目标信息也不是一步到位的,也必须经过一系列的子步骤来实现。首先,黑客做的工作一般是扫描,随机地或者是有针对性地利用扫描器去发现目标网络上那些有漏洞的机器,像程序的溢出漏洞、CGI、Unicode、FTP、数据库漏洞等,都是黑客希望看到的扫描结果。随后就是尝试入侵了。一般采用以下7个基本步骤,每一步均有可利用的工具,攻击者使用它们得到攻击目标所需要的信息:收集初始信息→查找网络地址范围→查找活动机器→查找开放端口和入口点→查看操作系统类型→弄清每个端口运行的服务→画出网络图。
学完前端后,还需要什么才能做出一个自己的网站?
一般学完前端之后。就可以做出自己的网站了。但是这个网站仅仅只是展示型网站。如果想做功能型或电商的这种网站的话,可能还需要学习PHP ,java 等。