首页 > 其他分享 >常见的网络攻防技术(通俗易懂)

常见的网络攻防技术(通俗易懂)

时间:2024-09-12 11:54:16浏览次数:16  
标签:攻防 CSRF 攻击 常见 用户 通俗易懂 DNS SQL 攻击者

前言

提示: 文章同样适用于非专业的朋友们,全文通俗化表达,一定能找到你亲身经历过的网络攻击(建议大家认真看完,这篇文章会刷新你对网络攻防的认知)

前言

在世界人口近80亿的地球上,每天尚且发生数以百万计的抢劫打架斗殴事件,网络更是如此,网络攻防战几乎每时每刻都在发生。

如果说打架斗殴枪击事件离我们还很远,那网络攻防战在你打开手机的时候就开始了!本人能力有限,暂不谈网络攻防具体操作实现过程,我们用通俗易懂的语言一块聊聊——神秘的“网络攻防”

每当听到“网络攻防”这个名词,有没有一瞬间觉得很神秘?脑海中是否下意识的出现身穿黑色连衣帽的黑客中黑入某机构网站的场景?

在这里插入图片描述

其实它并没有想象中的那么神秘,接下来我们一块唠唠常见的几种常见的网络攻防技术。

SQL注入

SQL注入是一种非常常见的一种数据库攻击手段,我们平时用的所有网站,软件都会用到数据库,只要有数据库存在的地方就可能存在 SQL 注入漏洞。

比如某大学学生通过SQL注入篡改期末成绩,某男子入侵某网站窃取大量用户信息等等。

在这里插入图片描述

SQL注入攻击的核心在于让Web服务器执行攻击者期望的SQL语句,以便得到数据库中的感兴趣的数据或对数据库进行读取、修改、删除、插入等操作,达到其邪恶的目的。

而如何让Web服务器执行攻击者的SQL语句呢?SQL注入的常规套路在于将SQL语句放置于Form表单请求参数之中(比如说SELECT、DROP等等)提交到后端服务器,后端服务器如果未做输入安全校验,直接将变量取出进行数据库查询,则极易中招。

举个简单的SQL注入例子

对于一个根据用户ID获取用户信息的接口,后端的SQL语句一般是这样:

图片

其中,$id就是前端提交的用户id,那前端的请求如果是这样:

图片

请求参数id转义后就是1 or 1=1,如果后端不做安全过滤直接提交数据库查询,SQL语句就变成了:

图片

最终结果就是把用户表中的所有数据全部查出,已经达到了攻击者泄露数据的目的。

上面只是一个非常简单的注入示例,在真实的SQL注入攻击中参数构造和SQL语句远比这复杂得多,攻击者攻击的位置也复杂的多,不过原理是一致的。复杂度提升产生的攻击效果可想而知。

XSS攻击

XSS全称是跨站脚本攻击(Cross Site Scripting),为了和重叠样式表CSS区分,换了另一个缩写XSS。

简单来说就是某饭店要进一批酸菜,张三在送货车快到饭店的时候,偷偷上车把原来的酸菜换成了“老坛酸菜”,随后老坛酸菜”被放入饭店仓库。此后只要有人来饭店吃酸菜鱼,就会被“美味”攻击,让用户毫不知情的踩坑。

XSS攻击的核心是将可执行的前端脚本代码(一般为JavaScript)植入到网页中,通常指的是通过利用网页开发时留下的漏洞,注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

这些恶意网页程序通常是JavaScript,但也存在Java、VBScript、ActiveX、Flash 或者甚至是普通的HTML代码。一旦攻击成功后,攻击者可能得到一些用户或管理员权限(权限上不封顶)。

那我们来聊聊攻击者是如何办到的呢?

一般XSS攻击分为两种:反射型和存储型

1.反射型

攻击者将JS代码作为请求参数放置URL中,诱导用户点击,落入陷阱。在这里插入图片描述

比如这个,攻击者首先将JS代码作为请求参数放置URL中,诱导用户点击

在这里插入图片描述

等用户点击后,该JS就会作为请求参数传给Web服务器后端。如果后端服务器没有很完善的检查过滤,就会简单处理后放入网页正文中返回给浏览器,等浏览器解析返回的网页后,用户已经中招了!

2.存储型

上面反射型攻击脚本直接经服务器,转手后返回浏览器触发执行。

存储型和它的区别在于能够将攻击脚本入库存储,在后面进行查询时,再将攻击脚本渲染进网页,返回给浏览器触发执行。

图片

举个例子

XSS攻击就好比攻击者在某网页论坛中回复一个帖子,帖子中包含JS脚本,回帖提交服务器后,就会存储至数据库。

其他网友查看这个帖子后,后台会自动查询该帖子的回帖内容,然后构建出完整网页,返回浏览器。此时,该网友浏览器渲染返回的网页已经中招!该网友的浏览器已经变成了靶子,后面的事情就不用多说了,可以想象这种攻击是多么防不胜防。

CSRF 攻击

CSRF攻击,全称是跨站请求伪造(Cross-site request forgery),它可以利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。

我保证绝大多数90,00后都遇到过CSRF攻击,具体CSRF攻击是什么?我先挖个坑,大家接着往下看。

图片

我记得上初中的时候,QQ空间经常会看到这样的说说:

“今天是马化腾的生日,转发这条说说到10个群免费赠送一个月VIP。”

“转发这条说说,免费领取一年黄钻/红钻/蓝钻/粉钻。”

“大家好,我是易烊千玺,这是我的QQ号*****,欢迎各位小伙伴加我QQ。”

上大学后,QQ邮箱又会收到这样的邮件。

发件人:“教务处”。

内容为:**“##大学##系2022年上学期期末考试成绩单”或者“##大学2022年下学期课程安排”**等,这些邮件中还很默契的都放一个链接。

即便是现在,玩QQ的都遇到过,莫名其妙的收到陌生人发来的一份在线共享文档,内容为:“##年下半年四六级成绩报告”

还有你QQ列表中那些被盗号的朋友是不是总会发些链接给你,点开以后发现手机卡死了。

近几年新闻报道的链接诈骗数不胜数,家里的爷爷奶奶,爸爸妈妈,甚至七大姑八大姨微信发给你的“点开链接并转发10个群即可领取100元现金红包”等等…

这些只是CSRF攻击的冰山一角,那CSRF攻击到底是什么呢?

CSRF(跨站域请求伪造)攻击虽然只是一种极为普通的攻击方式,但是它覆盖面极广,而且大部分人防范意识薄弱,导致它流行了10多年,仍然经久不衰。

它核心思想在于,用户在打开A网站的情况下,如果在Tab页面打开了被CSRF攻击过的恶意网站B,那此时在B页面的“唆使”下,用户自身浏览器会发起一个对网站A的HTTP请求。

这么一听好像也没什么厉害的,普普通通,但是CSRF攻击最致命的一点是:这个HTTP请求不是用户的主动意图,而是B网页“唆使”的,如果是一个危害较大的请求操作(比如发邮件?删数据?伪造信息贷款?等等)那就麻烦了。
图片

其次,因为在攻击之前用户已经打开了A网站,浏览器会存有A网站下发的Cookie或其他用于身份认证的信息,这次被“唆使”的请求,将会自动带上这些信息,导致A网站后端分不清楚这是否是用户真实的意愿还是“伪请求”。

随着用户被“唆使”时间的延长,这些类似蠕虫的恶意请求会一步一步挖空你的信息,严重的可能引导A网站直接转账。

这也就不难理解为何很多被CSRF攻击到的人明明什么都没做,只是点开了链接,钱就失踪了。

图片

当你打开手机,在搜索栏输入你想搜索的内容,按下回车的那一刻开始,你的上网信息已经汇报给网络管理者(注:属于合法行为,官方只收集你的网址,对你进行上网保护)

但并不是所有人都这么做,更多的情况是攻击者会监控你的一举一动,获取你的个人信息后转卖给某些非法组织非法盈利机构。但这种类型的网站也很好分辨,细心的人会发现,有些网址开头是http,有些是https。

http是超文本传输协议,简单来说就是用明文的方式传输数据。

https是安全套结字层超文本传输协议,即加密传输数据。

在这里插入图片描述

所以当你在http开头的网站上输入支付密码、身份证号、银行卡等等重要信息的时候,攻击者通过截获明文数据,这些内容将直接泄漏给攻击者。

就好比你在银行ATM机存钱的时候,输入卡号和密码的同时被ATM机明文广播。

尽管细思极恐,但绝不是在夸大其辞,在网络攻击者看来,只是输入几行命令那么简单的事。

不过目前大部分网站都已经采用https加密传输协议,除了某些境外的“学习网站”和少数标记为广告的网站仍在采用http协议(具体原因不用我多说了吧)。

在这里插入图片描述

******DDoS 攻击********

DDoS全称是分布式拒绝服务攻击(Distributed Denial of Service),属于是最没技术含量但攻击起来最让人头疼的一种。攻击者不断地提出服务请求,让合法用户的请求无法及时处理,这是 DoS 攻击。

而DDoS 攻击是攻击者使用多台计算机或者计算机集群进行 DoS 攻击

说简单点,就是一个人去饭店吃饭,点了99999999999+个菜,然后这个人跑了,厨师还在忙活着,结果厨师累死了。

图片

虽然听起来很无脑,甚至有些好笑,但不得不承认它确实是很厉害。

世界上第一个计算机病毒Morris的原理就与DDOS攻击类似,资源耗尽导致服务器死机。

此后,消耗资源的攻击的思维首次被一名黑客应用于邮件,导致当时多达数万份邮件停滞。

2007年在爱沙尼亚战争中首次大规模使用DDOS攻击,导致爱沙尼亚一整个国家在互联网上销声匿迹。

2008年的格鲁吉亚战争,DDOS攻击又导致该国网络全线瘫痪。

而在2018年,一境外黑客组织发动了迄今为止世界上规模最大的DDOS攻击,攻击目标是GitHub。在攻击最高峰时,此攻击以每秒1.3Tbps的速率传输流量,以每秒1.269亿的速率发送数据包。幸运的是,GitHub的DDoS保护机制让GitHub安全人员快速防御,有效的阻止了这次大规模攻击。

技术从来都是一柄双刃剑,分布式技术既可以用来提供高可用的服务,也能够被攻击者用来进行大规模杀伤性攻击。攻击者不再局限于单台计算机的攻击能力,转而通过成规模的网络集群发起拒绝服务攻击。这种规模攻击足以让一个国家网络受到毁灭性打击。

DNS劫持

当今互联网流量中,以HTTP/HTTPS为主的Web服务产生的流量占据了绝大部分,比如抖音、快手、爱奇艺、优酷等等更为突出。Web服务发展如此迅猛,这背后离不开一个默默无闻的大功臣就是域名解析系统DNS

如果没有DNS,我们上网需要记忆每个网站的IP地址而不是他们的域名,这简直是灾难,好在DNS默默在背后做了这一切,我们只需要记住一个域名,剩下的交给DNS来完成吧。

也正是因为其重要性,别有用心的人自然是不会放过它,DNS劫持技术又被发明了出来。

看到这是不是想吐槽一句:怎么什么东西都能当网络攻击手段啊?

没错,所以我们更要了解这些内容,提高自身的防范意识,我们接着说DNS劫持

DNS提供服务最初是用来将域名转换成IP地址,然而在早期协议的设计中并没有太多考虑其安全性,所以对于查询方的我们来说会产生诸多疑问:

我去请求的真的是一个DNS服务器吗?

确定不是别人冒充的?

查询的结果有没有被人篡改过?

这个IP真是这个网站的吗?

遗憾的是DNS协议中没有机制去保证能回答这些问题,因此DNS劫持现象非常泛滥,从用户在地址栏输入一个域名的那一刻起,一路上的凶险防不胜防,好比唐僧独自去西天取经,简直就是小母牛坐电线——牛X带闪电。

后来,为了解决这个问题,出现了DNSSEC技术,一定程度上可以解决上面的部分问题。但限于一些方面的原因,这项技术并没有大规模使用,尤其在国内,鲜有部署应用。

图片

再后来,以阿里、腾讯等头部互联网厂商为首开始推出了httpDNS服务,来了一招釜底抽薪,虽然这项技术的名字中还有DNS三个字母,但实现上和原来但DNS已经是天差地别,通过这项技术让DNS变成了在http协议之上的一个应用服务。所以现在国内网站基本很少会遇到DNS劫持的事件。

JSON 劫持

JSON是一种轻量级的数据交换格式,而劫持就是对数据进行窃取(或者应该称为打劫、拦截比较合适)。恶意攻击者通过某些特定的手段,将本应该返回给用户的JSON数据进行拦截,转而将数据发送回给恶意攻击者。

如果说前面那几个哥们是把你打劫的啥都不剩,那JSON劫持就看起来“温柔”许多,它只打劫那些敏感信息或者有价值的数据。JSON漏洞主要被攻击者用在受害者不知不觉中窃取他们的隐私数据,常常被一些 APT 组织采用进行信息收集和钓鱼的工作( 也称水坑攻击 )。

简单来说就是小偷进到张三家里,他不会傻到把沙发柜子搬走,他选择拿金属探测仪扫描,只带金属类的东西,拿相对价值最高的东西走。

图片

那有人就好奇,有价值的数据无非就是姓名,手机号,身份证号,email邮箱,以及一些网站的登录密码,还能有什么呢?

Cookies,简单来说就是攻击者登录你的账号不一定要用密码登录,也可以借助Cookies直接进入账户。

除此之外,它甚至可以是 CSRF Token 信息,前面谈过CSRF攻击,一定还有印象吧,可以说CSRF Token 就是防御的CSRF攻击的屏障,从内部瓦解才是最令人恐怖的。

暴力破解

这个名字,是不是比前面几个熟悉多了,暴力破解听名字也猜得出来原理很简单。它一般针对密码而言,弱密码(Weak Password)很容易被别人(对你很了解的人等)猜到或被破解工具暴力破解。具体了解可以去看看我前面发的密码学的博文。

在这里插入图片描述

总结

本文旨在用一些通俗易懂的大白话来聊网络攻防,科普的同时帮助大家增强网络防范的意识。这些例子是我对网络攻防的一些理解,可能具体细节不是很精准,但整体思路是对的。

同时我想让更多非本专业的朋友们能了解网络攻击到底是什么,抛开定型化认知壁垒,它并没有想象的那么神秘,网络攻防就在我们身边,提高防范意识,才能在互联网中保护自己,保护家人。

若文章内容描述有误,请大家指正!

END

如何入门学习网络安全【黑客】

【----帮助网安学习,以下所有学习资料文末免费领取!----】

> ① 网安学习成长路径思维导图
> ② 60+网安经典常用工具包
> ③ 100+SRC漏洞分析报告
> ④ 150+网安攻防实战技术电子书
> ⑤ 最权威CISSP 认证考试指南+题库
> ⑥ 超1800页CTF实战技巧手册
> ⑦ 最新网安大厂面试题合集(含答案)
> ⑧ APP客户端安全检测指南(安卓+IOS)

大纲

首先要找一份详细的大纲。

在这里插入图片描述

学习教程

第一阶段:零基础入门系列教程

img

该阶段学完即可年薪15w+

第二阶段:技术入门

弱口令与口令爆破
XSS漏洞
CSRF漏洞
SSRF漏洞
XXE漏洞
SQL注入
任意文件操作漏洞
业务逻辑漏洞

该阶段学完年薪25w+

img

阶段三:高阶提升

反序列化漏洞
RCE
综合靶场实操项目
内网渗透
流量分析
日志分析
恶意代码分析
应急响应
实战训练

该阶段学完即可年薪30w+

面试刷题

img
在这里插入图片描述

最后,我其实要给部分人泼冷水,因为说实话,上面讲到的资料包获取没有任何的门槛。

但是,我觉得很多人拿到了却并不会去学习。

大部分人的问题看似是“如何行动”,其实是“无法开始”。

几乎任何一个领域都是这样,所谓“万事开头难”,绝大多数人都卡在第一步,还没开始就自己把自己淘汰出局了。

如果你真的确信自己喜欢网络安全/黑客技术,马上行动起来,比一切都重要

资料领取

上述这份完整版的网络安全学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码 即可自动领取↓↓↓
或者

点此链接】领取

标签:攻防,CSRF,攻击,常见,用户,通俗易懂,DNS,SQL,攻击者
From: https://blog.csdn.net/weixin_46428928/article/details/142093933

相关文章

  • 常见的web音视频播放器
    1.video-js是否开源:是是否免费:是官网地址:https://videojs.com/特点:支持hls、dash、.mp4、webm等多种视频类型,2.西瓜播放器是否开源:是是否免费:是官网地址:https://v2.h5player.bytedance.com/特点:一款带解析器、能节省流量的HTML5视频播放器。支持播放hls、.m3u8、.flv、......
  • PbootCms内页打不开的常见情况汇总
    当遇到PBootCMS内页无法正常访问的情况时,特别是当点击任何链接都跳转到首页或内页访问报错时,通常与伪静态配置有关。以下是最简单粗暴的方案——关闭伪静态,使用兼容模式的操作步骤:1.关闭伪静态步骤1:修改全局设置登录PBootCMS后台。导航到“全局设置”。找到“URL模式”......
  • 滚雪球学MyBatis(12):常见问题与解决方案
    前言欢迎回到我们的MyBatis系列教程。在前几期中,我们已经进行了MyBatis的基础使用、进阶功能及项目实战的详细讲解。通过这些内容,相信大家对MyBatis有了全面的了解,并能够在实际项目中应用MyBatis。然而,在使用MyBatis的过程中,我们可能会遇到各种问题。本期内容中,我们将总结......
  • 常见设计模式
    设计模式是一种在软件开发中常用的解决特定问题的通用方法。它们提供了一种标准化的方式来构建和组织代码,提高代码的可重用性和可维护性。以下是一些常见的设计模式,通常可以分为三大类:创建型、结构型和行为型。1.创建型模式这些模式主要关注对象的创建过程。单例模式(Singlet......
  • Python有哪些常见的、好用的爬虫框架?
    Python有非常多的爬虫框架,主要分为三大类。一种是请求库,比如requests、urllib、httpx等,负责向目标网站发送HTTP请求并获取响应数据。Scrapy也属于这个大类,不过Scrapy功能更加完善,可以提供异步网络请求、高效的数据提取与灵活的扩展性,适用于构建复杂和大规模的网页爬虫应用。......
  • 【Node.js】常见命令
    原创新生代码农新生代码农Node.js是一种流行的JavaScript运行时环境,用于构建高性能的网络应用程序。在日常开发中,掌握一些常用的Node.js命令可以提高开发效率和便捷性。让我们一起来探索一些常见的Node.js命令。nodenode命令用于执行JavaScript文件,是Node.js的主要命令......
  • 【C++】vector常见用法
    ......
  • POI常见包名称含义,常见HSSF,SXXF,SXSSF区别
    Java单元格合并后边框消失了在使用Java编写Excel文件时,经常会遇到合并单元格的需求。单元格合并可以使表格更加美观,同时减少重复的内容。然而,有时候在合并单元格后会发现边框消失了,这给我们带来了困惑。本文将介绍这个问题的原因以及解决方法,并提供相应的代码示例。问题描述当我......
  • MySQL常见面试题
    使⽤索引⼀定可以提升效率吗?索引就是排好序的,帮助我们进⾏快速查找的数据结构.简单来讲,索引就是⼀种将数据库中的记录按照特殊形式存储的数据结构。通过索引,能够显著地提⾼数据查询的效率,从⽽提升服务器的性能。索引的优势与劣势优点提⾼数据检索的效率,降低数据库的IO成本......
  • 前端常见算法题
    1、去除字符串中出现次数最少的字符,不改变原字符串的顺序实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。“ababac”——“ababa”“aaabbbcceeff”——“aaa......