网络安全(黑客)零基础入门

导语

    什么是 Web 安全?我又该如何入门学习它呢?学习过程中又应注意哪些问题呢?...

    或许你的心中有着这样的疑问、不过别着急,本文会为你一一解答这些问题。

正文

定义

Web 安全,顾名思义便是由保障 Web 应用能够持续安全运行而衍生出的一个分支领域。

Web 应用指的是一个网站的前端页面到后端服务,可以粗略的理解为一个网站及其配套的相关服务,该领域中常见
漏洞有 SQL 注入漏洞,XSS 漏洞,CSRF 漏洞等等,漏洞种类多样,趣味性强,较为适合新手入门。

下面为你介绍 Web 安全方面的常见漏洞,以下讲解主要从原理角度出发,旨在帮助新手朋友更好的理解相关漏洞,具体技术细节暂不讨论。

常见漏洞

SQL 注入(SQL Injection)

网站,也就是 web 应用中往往会涉及到数据的查询与修改,对数据进行操作则需要用到 SQL 语言(结构化查询语言 (Structured Query Language) 简称 SQL,是一种特殊目的的编程语言)。

网站在使用 SQL 查询数据时,用户输入的信息或提交的参数(比如你在使用百度时输入的 “关键词”,登录某些网站时提交的账户密码..)将会参与到 SQL 数据查询的过程中,一旦用户提交了有害数据,便有可能对网站运行产生危害。

将有害数据 “注入” 到 SQL 查询过程之中,这也正是 “SQL 注入” 得名的缘由。

SQL 注入漏洞往往会导致数据泄露,例如前些年爆出的沸沸扬扬的” 社工库 ",” 人 rou" 搜索,全球数十亿密码泄露等事件,他们的背后或多或少有着 SQL 注入的影子。

SQL 注入的定义为:

当 Web 应用向后台数据库传递 SQL 语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的 SQL 语句,直接输入数据库进行执行,获取或修改数据库中的数据。

XSS 跨站脚本攻击(Cross-Site Scripting,XSS)

 

同样是由于网站对于用户的输入内容没有进行严格的过滤处理,一些恶意的脚本代码被用户的浏览器执行而引发了 XSS 漏洞。

一个网站的呈现是基于 HTML,CSS,JS 等脚本语言的,浏览器的作用是什么?简单来说便是将只有计算机才能 “读懂”的脚本语言及代码渲染成我们所看到的的图像与文字。

这里以百度为例。在与架设着网站的服务器通信时,我们实际上收到的是使用 HTML 等语言编写的源代码,浏览器会将该源代码 “翻译”出来。

 

(浏览器将下方的源代码 “翻译” 成 “百度搜索” 的页面)

如果我们能利用网站的某些缺陷,将自行构造的恶意脚本代码‘’注入” 到网站源代码之中,在别的用户在浏览网页时,我们构造的恶意代码便会被浏览器 “翻译” 出来,造成危害(Cookie 泄露,键盘记录等),这便形成了 XSS 漏洞。

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

 

该漏洞往往不直接攻击网站服务器,而是冒充用户在站内的正常操作以达到攻击目的。我们在与网站进行交互操作时,绝大多数操作是基于浏览器与网站服务器的通信请求的,比如我们会在某些购物网站下商品订单,给指定用户转账,或者查询自己的考试成绩。

如果能够在用户没有察觉的情况下,“悄无声息” 通过浏览器伪造一些请求操作,进而产生对用户有害的攻击行为,那么便形成了 CSRF 漏洞。

上文提到过,XSS 漏洞可以在用户不知情的情况下执行恶意操作,如果我们在 XSS 攻击代码中包含伪造好的特定请求呢?这便与 CSRF 漏洞不谋而合。所以,XSS 与 CSRF 常相配合使用,威力巨大。

防范 CSRF 漏洞,需要添加 token 或 referer 来防御,云影安全后续会对此进一步讲解。

DDOS 分布式拒绝攻击 (Distributed Denial of Service)

 

起源于二十世纪九十年代,历经二十多年发展而经久不衰,DDoS 攻击已经成为网络安全领域影响最为深远的威胁之一。

严格地来讲,DDOS 并不完全归属于 Web 安全的范畴,凡是对外提供服务的服务器或主机都存在被 DDOS 攻击的风险,但 DDOS 攻击在 Web 领域较为常见且危害大,我们在这里加以讲解。

那么什么是 DDOS 攻击呢?如果多台主机对目标网站或服务器发送大量请求,超出了该网站或服务器的处理能力上限,导致服务瘫痪,这种行为便可以称作 DDOS 攻击。

举一个较为经典的例子,假设一个餐厅最多可以同时容纳 50 人就餐,假设在极短时间内该餐厅涌入成百上千的顾客,该餐厅的正常就餐秩序必然会受到毁灭性的冲击。

DDOS 攻击如今已发展出多种攻击模式与手段,目前还没有一个较为完美的应对策略,关键点在于精心发动的 DDOS攻击往往会利用合理的服务请求来占用过多的服务资源,难与正常用户的请求相区分,从而使服务器无法处理合法用户的指令。

方法论

孤帆终究要起航,侠客也要去闯荡。在你开始踏上 Web 安全之路前,我们愿与你分享一些在探索学习中可能会有所帮助的心得与经验。

1. 亲手实践

  • 纸上得来终觉浅,绝知此事要躬行。
  • 在学习漏洞原理或是利用技巧时,最好不要止步于只看懂技术文章。相关的介绍文章往往以讲解思路为主,为保证文章整体的连贯性,部分技术细节会被忽略掉。例如程序的运行环境,设备的网络情况以及相关应用组件的具体版本号。
  • 然而对于初学者来说,这些技术细节同样至关重要,如果没有亲手实践过,亲手复现出相同的漏洞或利用技巧,你永远不会接触到那些被忽视的种种细节。而细节决定成败,对漏洞利用过程的残缺理解会对进一步的学习探索造成难以估量的影响。
  • 同时,动手操作也有利于巩固对于所学知识的理解与记忆,加深印象。漏洞种类繁多,差异化的利用条件同样决定着漏洞利用的成功与否,因此在动手实践复现漏洞的同时,还需要完整的笔记记录。

2. 构建体系

  • 什么是体系?体系的本质是各个知识点的灵活串联与应用。在体系里,知识不再是孤零零散落在大脑各处信息点,而是互相补充互相协作而成的系统化的有机整体。
  • 其实这并不难理解。举个简单的例子,假如现在有一篇中文技术文档放在面前,虽然我们并不是专业人士,但将这份文档读完还是可以做到的,但如果换一个不懂中文的外国人来看这篇文章,那么他连阅读都无法完成。我们之所以可以将一篇不能完全理解的专业文章看完,是因为我们有一定的语文基础知识。
  • 也就是说,在我们的大脑里,储存着识字的能力。我们可以将这些已经拥有的能力整合在知识体系中。这样的话,当我们去学习新知识时,完全可以从构建好的体系里,找到已经形成的能力。
  • 好处即,完全陌生的知识会被分解形成一些小的知识点。然后再联系体系中已有的能力,去逐一攻克这些陌生的难题。

 

3. 分享交流

  • 什么是黑客?真正的黑客可能与大多数人所理解的有所差异。黑客,由英语 Hacker 音译出来的,狭义是指专门研究、发现计算机和网络漏洞的计算机爱好者。根据黑客的原始定义,黑客对计算机有着狂热的兴趣和执着的追求,不断推动着计算机和网络的发展与完善。显而易见,黑客与网络安全紧密相关。
  • 黑客精神是关于开放的精神。而黑客行为是基于团队的,只有开放才能让参与者们发挥出最大的能量,去修补,去改造。互联网上最有价值行为就是「奉献」,技术在奉献中获得了进步,知识在共享中得到了丰富。“分享交流” 无疑是构成互联网这座大厦的基石,只有知识共享才能推动我们不断向前走。逛一逛社区,分享些自我学习的心得,于人于己,都是大有裨益的。

网络安全学习路线

第一阶段:基础操作入门,学习基础知识

入门的第一步是学习一些当下主流的安全工具课程并配套基础原理的书籍,一般来说这个过程在1个月左右比较合适。

在这个阶段,你已经对网络安全有了基本的了解。如果你学完了第一步,相信你已经在理论上明白了上面是sql注入,什么是xss攻击,对burp、msf、cs等安全工具也掌握了基础操作。这个时候最重要的就是开始打地基!

所谓的“打地基”其实就是系统化的学习计算机基础知识。而想要学习好网络安全,首先要具备5个基础知识模块:

1.操作系统

2.协议/网络

3.数据库

4.开发语言

5.常见漏洞原理

学习这些基础知识有什么用呢?

计算机各领域的知识水平决定你渗透水平的上限。

【1】比如:你编程水平高,那你在代码审计的时候就会比别人强,写出的漏洞利用工具就会比别人的好用;

【2】比如:你数据库知识水平高,那你在进行SQL注入攻击的时候,你就可以写出更多更好的SQL注入语句,能绕过别人绕不过的WAF;

【3】比如:你网络水平高,那你在内网渗透的时候就可以比别人更容易了解目标的网络架构,拿到一张网络拓扑就能自己在哪个部位,拿到以一个路由器的配置文件,就知道人家做了哪些路由;

【4】再比如你操作系统玩的好,你提权就更加强,你的信息收集效率就会更加高,你就可以高效筛选出想要得到的信息

第二阶段:实战操作

1.挖SRC

挖SRC的目的主要是讲技能落在实处,学习网络安全最大的幻觉就是觉得自己什么都懂了,但是到了真的挖漏洞的时候却一筹莫展,而SRC是一个非常好的技能应用机会。

2.从技术分享帖(漏洞挖掘类型)学习

观看学习近十年所有0day挖掘的帖,然后搭建环境,去复现漏洞,去思考学习笔者的挖洞思维,培养自己的渗透思维​​​​​​

3.靶场练习

自己搭建靶场或者去免费的靶场网站练习,有条件的话可以去购买或者报靠谱的培训机构,一般就有配套的靶场练习

第三阶段:参加CTF比赛或者HVV行动

推荐:CTF比赛

CTF有三点:

【1】接近实战的机会。现在网络安全法很严格,不像之前大家能瞎搞

【2】题目紧跟技术前沿,而书籍很多落后了

【3】如果是大学生的话,以后对找工作也很有帮助

如果你想打CTF比赛,直接去看赛题,赛题看不懂,根据不懂的地方接着去看资料

推荐:HVV(护网)

HVV有四点:

【1】也能极大的锻炼你,提高自身的技术,最好是参加每年举行的HVV行动

【2】能认识许多圈内的大佬,扩大你的人脉

【3】HVV的工资也很高,所以参加的话也能让你赚到不少钱

【4】和CTF比赛一样如果是大学生的话,以后对找工作也很有帮助

四、学习资料的推荐

书单推荐:

计算机操作系统:

【1】编码:隐藏在计算机软硬件背后的语言

【2】深入理解操作系统

【3】深入理解windows操作系统

【4】Linux内核与实现

编程开发类:

【1】 windows程序设计

【2】windwos核心变成

【3】Linux程序设计

【4】unix环境高级变成

【5】IOS变成

【6】第一行代码Android

【7】C程序语言设计

【8】C primer plus

【9】C和指针

【10】C专家编程

【11】C陷阱与缺陷

【12】汇编语言(王爽)

【13】java核心技术

【14】java编程思想

【15】Python核心编程

【16】Linuxshell脚本攻略

【17】算法导论

【18】编译原理

【19】编译与反编译技术实战

【20】代码整洁之道

【21】代码大全

【22】TCP/IP详解

【23】Rootkit : 系统灰色地带的潜伏者

【24】黑客攻防技术宝典

【25】加密与解密

【26】C++ 反汇编与逆向分析技术揭秘

【27】web安全测试

【28】白帽子讲web安全

【29】精通脚本黑客

【30】web 前端黑客技术揭秘

【31】程序员的应用

【32】英语写作手册:风格的要素

常见的网络安全及论坛

  • 看雪论坛
  • 安全课
  • 安全牛
  • 安全内参
  • 绿盟
  • 先知社区
  • XCTF联盟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/66134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows新版文件资源管理器经常在后台弹出的临时解决方案

禁用组策略自动刷新 运行gpedit.msc找到计算机配置->管理模板->系统->组策略找到 “关闭组策略的后台刷新”启用 参考 https://answers.microsoft.com/en-us/windows/forum/all/windows-11-most-recently-opened-explorer-window/26e097bd-1eba-4462-99bd-61597b5…

【计算机网络】socket编程

文章目录 1. 网络通信的理解2.进程PID可以取代端口号吗?3. 认识TCP协议4. 认识 UDP协议5. socket编程接口udp_server.hpp的代码解析socket——创建 socket 文件描述符Initserver——初始化1.创建套接字接口,打开网络文件bind——绑定的使用 2.给服务器指…

鸿蒙智联再出发,携手伙伴共赢空间智能化,创造无限可能

新空间,再出发,HarmonyOS Connect伙伴峰会完 2023年8月5日,HarmonyOS Connect伙伴峰会在东莞如期举办,峰会以《一起创造无限可能 新空间 再出发》为主题,深度解读了鸿蒙智联商业模式全面升级以来,给伙伴带来…

Qt拖放事件与拖放操作笔记dragEnterEvent,dropEvent

1 介绍 拖放事件主要用于处理MIME数据,该数据是用于在发送电子邮件时,附加多媒体数据(即拖拽一个文件放入邮件中,事件文件的上传)。 2 示例 a)使用简化步骤声明拖放事件成员函数: b)…

C#与C/C++交互(1)——需要了解的基础知识

【前言】 C#中用于实现调用C/C的方案是P/Invoke(Platform Invoke),让托管代码可以调用库中的函数。类似的功能,JAVA中叫JNI,Python中叫Ctypes。 常见的代码用法如下: [DllImport("Test.dll", E…

IPv6地址分类,EUI-64转换规则

1、可聚合的单全球单播地址Global Unique Address: Aggregate global unicast address,前3位是001,即2000::/3,目前IANA已经将一部分可聚合全球单播进行了专门使用,如:2001::/16用于IPV6互联网,…

流量分析日志查看

一流量分析 buuctf wireshark 从题目出发,既然是上传登录信息,就直接过滤post请求,即搜索 http.request.methodPOST,因为上传用户登录信息使用的一定是http里的post方法 模式过滤 http.request.method “GET” http.request.…

无涯教程-Perl - getpriority函数

描述 此函数返回进程(PRIO_PROCESS),进程组(PRIO_PGRP)或用户(PRIO_USER)的当前优先级。 参数WHICH指定要为PRIO_PROCESS,PRIO_PGRP或PRIO_USER之一设置优先级的实体,WHO是要设置的进程ID或用户ID。 WHO的值为0定义了当前流程,流程组或用户。这会在不支持系统getpriority()函…

Springboot后端通过路径映射获取本机图片资源

项目场景: 项目中对图片的处理与查看是必不可少的,本文将讲解如何通过项目路径来获取到本机电脑的图片资源 如图所示,在我的本机D盘的图片测试文件夹(文件夹名字不要有中文)下有一些图片, 我们要在浏览器上访问到这些图片&#…

RISC-V基础之函数调用(二)栈与寄存器(包含实例)

堆栈是一种后进先出(LIFO)的队列,用于存储函数调用时的临时数据和现场数据。堆栈指针sp(寄存器2)是一个普通的RISC-V寄存器,按照惯例,指向堆栈的顶部。堆栈从高地址向低地址增长,即当…

【UE4 RTS】04-Camera Pan

前言 本篇实现了CameraPawn的旋转功能。 效果 步骤 1. 打开项目设置,添加两个操作映射 2. 打开玩家控制器“RTS_PlayerController_BP”,新建一个浮点型变量,命名为“PanSpeed” 在事件图表中添加如下节点 此时运行游戏可以发现当鼠标移动…

WEB集群——负载均衡集群

目录 一、 LVS-DR 群集。 1、LVS-DR工作原理 2、LVS-DR模式的特点 3、部署LVS-DR集群 3.1 配置负载调度器(192.168.186.100) 3.2 第一台web节点服务器(192.168.186.103) 3.3 第二台web节点服务器(192.168.186.…

Q-Vision+Kvaser CAN/CAN FD/LIN总线解决方案

智能联网技术在国内的发展势头迅猛,随着汽车智能化、网联化发展大潮的到来,智能网联汽车逐步成为汽车发展的主要趋势。越来越多整车厂诉求,希望可以提供本土的测量软件,特别是关于ADAS测试。而Softing中国推出的Q-Vision软件不仅可…

f12 CSS网页调试_css样式被划了黑线怎么办

我的问题是这样的 class加上去了,但是样式不生效,此时可能是样式被其他样式覆盖了, 解决方案就是 给颜色后边添加一个!important

Docker的入门与使用

什么是Docker? docker官网 简介与概述 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上&#x…

RISCV 5 RISC-V调用规则

RISCV 5 RISC-V调用规则 1 Register Convention1.1 Integer Register Convention1.2 Floating-point Register Convention 2. Procedure Calling Convention2.1 Integer Calling Convention2.2 Hardware Floating-point Calling Convention2.3 ILP32E Calling Convention2.4 Na…

【flink】使用flink-web-ui提交作业报错

使用WebUI提交作业出现错误。 错误截图: 弹框信息: Server Response Message: org.apache.flink.runtime.rest.handler.RestHandlerException: Could not execute application.at org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$h…

webshell免杀项目-Auto-JSPwebshell(五)

Auto-JSPwebshell/jsp免杀/webshell免杀/自动生成 项目地址: https://github.com/G0mini/Bypass 具体使用请参考: https://mp.weixin.qq.com/s/9-__B0MBRSXHla6O0KU7Gg

缓解针对LLM应用程序的存储提示注入攻击

推荐:使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 LLM提供提示文本,并根据其已训练和访问的所有数据进行响应。为了用有用的上下文补充提示,一些 AI 应用程序捕获来自用户的输入,并在将最终提示发送到 LLM 之前将用户看不…

08. 容器间通信

目录 1、前言 2、容器间通信 2.1、通过IP地址进行通信 2.2、通过DNS Server进行通信 2.3、通过Joined方式通信 3、容器跨节点通信 3.1、通过容器在宿主机上的端口映射实现 3.2、通过Docker Overlay网络实现 4、小结 1、前言 上一篇《07.Docker网络通信模式》我们初步认…