您当前的位置:首页 > 电脑百科 > 安全防护 > 数据安全

网络安全:SQL注入,XSS攻击,CSRF攻击

时间:2022-08-11 13:28:23  来源:  作者:小小小网安

- 网络安全

- SQL注入
- XSS攻击
- CSRF攻击
- DDoS攻击
- DNS劫持
- TCP劫持
- 端口扫描技术

1、SQL注入

Web安全三板斧之首,大名鼎鼎的SQL注入。

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

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

举例如下:

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

select name,[...] from t_user where id=$id

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

GET xx/userinfo?id=1%20or%201=1

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

select name,[...] from t_user where id=1 or 1=1

其结果是把用户表中的所有数据全部查出,达到了黑客泄露数据的目的。

以上只是一个极简单的示例,在真实的SQL注入攻击中参数构造和SQL语句远比这复杂得多,不过原理是一致的。

要解决 SQL 注入就不能让用户输入的数据(如:密码)和我们的 SQL 语句进行简单的字符串拼接。${} 的作用实际上是字符串拼接,所以要特别小心sql注入问题。

 #{}用到了prepareStement,它将 SQL 语句发送给数据库预编译,安全性更高,没有 SQL 注入的隐患,减少 SQL 编译次数,提高效率。

#{}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。而${}将传入的数据直接显示生成在sql中。

防御手段:对输入进行检测,阻断带有SQL语句特征的输入。

重点关注前端工程师Web后端工程师

2、XSS攻击

Web安全三板斧之二,全称跨站脚本攻击(Cross Site Scripting),为了与重叠样式表css区分,换了另一个缩写XSS。

XSS攻击的核心是将可执行的前端脚本代码(一般为JAVAScript)植入到网页中,听起来比较拗口,用大白话说就是攻击者想让你的浏览器执行他写的JS代码。那如何办到呢?一般XSS分为两种:

1)、反射型

1、攻击者将JS代码作为请求参数放置URL中,诱导用户点击       示例:

http://localhost:8080/test?name=<script>alert("you are under attack!")</script>

2、用户点击后,该JS作为请求参数传给Web服务器后端

3、后端服务器没有检查过滤,简单处理后放入网页正文中返回给浏览器

4、浏览器解析返回的网页,中招!

2)、存储型

上述方式攻击脚本直接经服务器转手后返回浏览器触发执行,存储型与之的区别在于能够将攻击脚本入库存储,在后面进行查询时,再将攻击脚本渲染进网页,返回给浏览器触发执行。常见的套路举例如下:

1、攻击者网页回帖,帖子中包含JS脚本

2、回帖提交服务器后,存储至数据库

3、其他网友查看帖子,后台查询该帖子的回帖内容,构建完整网页,返回浏览器

4、该网友浏览器渲染返回的网页,中招!

防御手段:前后端均需要做好内容检测,过滤掉可执行脚本的侵入

重点关注前端工程师Web后端工程师

3、CSRF攻击

Web安全三板斧之三,攻击示意图如下:

 核心思想在于,在打开A网站的情况下,另开Tab页面打开恶意网站B,此时在B页面的“唆使”下,浏览器发起一个对网站A的HTTP请求。这个过程的危害在于2点:

1、这个HTTP请求不是用户主动意图,而是B“唆使的”,如果是一个危害较大的请求操作(发邮件?删数据?等等)那就麻烦了

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

重点关注前端工程师Web后端工程师

3、DDoS攻击

DDoS全称Distributed Denial of Service:分布式拒绝服务攻击。是拒绝服务攻击的升级版。拒绝攻击服务顾名思义,让服务不可用。常用于攻击对外提供服务的服务器,像常见的:

  • Web服务
  • 邮件服务
  • DNS服务
  • 即时通讯服务
  • ......

在早期互联网技术还没有那么发达的时候,发起DoS攻击是一件很容易的事情:一台性能强劲的计算机,写个程序多线程不断向服务器进行请求,服务器应接不暇,最终无法处理正常的请求,对别的正常用户来说,看上去网站貌似无法访问,拒绝服务就是这么个意思。

后来随着技术对发展,现在的服务器早已不是一台服务器那么简单,你访问一个www.bAIdu.com的域名,背后是数不清的CDN节点,数不清的Web服务器。

这种情况下,还想靠单台计算机去试图让一个网络服务满载,无异于鸡蛋碰石头,对方没趴下,自己先趴下了。

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

拒绝服务攻击实际上是一类技术,根据具体实施手段的不同,又可以进一步细分:

  • SYN Flood
  • ICMP Flood
  • UDP Flood
  • ......

防御手段:即便是到现在,面对DDoS也没有100%打包票的防御方法,只能靠一些缓解技术一定层面上减轻攻击的威力。这些技术包括:流量清洗SYN Cookie等等。

重点关注运维工程师安全工程师

4、DNS劫持

当今互联网流量中,以HTTP/HTTPS为主的Web服务产生的流量占据了绝大部分。Web服务发展的如火如荼,这背后离不开一个默默无闻的大功臣就是域名解析系统:

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

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

DNS提供服务用来将域名转换成IP地址,然而在早期协议的设计中并没有太多考虑其安全性,对于查询方来说:

  • 我去请求的真的是一个DNS服务器吗?是不是别人冒充的?
  • 查询的结果有没有被人篡改过?这个IP真是这个网站的吗?

DNS协议中没有机制去保证能回答这些问题,因此DNS劫持现象非常泛滥,从用户在地址栏输入一个域名的那一刻起,一路上的凶险防不胜防:

  • 本地计算机中的木马修改hosts文件
  • 本地计算机中的木马修改DNS数据包中的应答
  • 网络中的节点(如路由器)修改DNS数据包中的应答
  • 网络中的节点(如运营商)修改DNS数据包中的应答
  • ......

 后来,为了在客户端对收到对DNS应答进行校验,出现了DNSSEC技术,一定程度上可以解决上面的部分问题。但限于一些方面的原因,这项技术并没有大规模用起来,尤其在国内,鲜有部署应用。

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

重点关注安全工程师后端工程师运维工程师

5、TCP劫持

TCP是TCP/IP协议族中非常重要的成员,位于传输层。协议本身并没有对TCP传输的数据包进行身份验证,所以我们只要知道一个TCP连接中的seq和ack后就可以很容易的伪造传输包,假装任意一方与另一方进行通信,我们将这一过程称为TCP会话劫持(TCP Session Hijacking)

TCP劫持技术是一种很老的技术,1995年被提出来后深受黑客青睐。不过近些年来,随着操作系统层面的安全机制增强和防火墙软件的检测能力提升,这种基础的攻击方式越来越容易被发现,慢慢的淡出了人们的视野。

重点关注安全工程师运维工程师

6、端口扫描技术

端口扫描是黑客经常使用的一种技术,它一般是作为网络攻击的前期阶段,用于探测目标开启了哪些服务,以便接下来发起针对该服务的攻击。

记得刚刚学习网络安全的时候,大家总会没事拿出工具来扫一扫,虽然扫了之后就没有了下文,也总是乐此不疲,在不懂的人面前秀一把自己的“黑客”能力。

 以TCP/IP协议族构建的互联网,网络服务总是离不开端口这个概念,不管是TCP也好,UDP也罢,应用层都需要一个端口号来进行网络通信。而我们常见的服务端口有:

  • 21: FTP文件传输服务
  • 25: SMTP邮件服务
  • 53: DNS域名解析系统服务
  • 80: HTTP超文本传输协议服务
  • 135: RPC远程过程调用服务
  • 443: HTTPS
  • 3389: MSRDP微软远程桌面连接服务
  • ......

端口扫描都原理,对于基于UDP的服务,发送对应服务都请求包,查看是否有应答;对于基于TCP的服务,尝试发起三次握手发送TCP SYN数据包,查看是否有应答。

如果远端服务器进行了响应,则表明对端服务器上运行了对应的服务,接下来则是进一步探知对端服务器使用的操作系统、运行的服务器程序类型、版本等等,随即针对对应的漏洞程序发起网络攻击。

 由此可见,为安全着想,在互联网上应当尽可能少暴露信息,关闭不需要的服务端口。

防御手段:使用防火墙等安全产品,即时发现和阻断非法的扫描探测行为。

重点关注运维工程师安全工程师



Tags:SQL注入   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
SQL注入漏洞的检测及防御方法
SQL注入(SQL Injection)是一种广泛存在于Web应用程序中的严重安全漏洞,它允许攻击者在不得到授权的情况下访问、修改或删除数据库中的数据。这是一种常见的攻击方式,因此数据库...【详细内容】
2023-12-01  Search: SQL注入  点击:(117)  评论:(0)  加入收藏
从零到SQL注入防护大师,打造安全的Python应用程序
当涉及到与数据库交互时,防止SQL注入攻击是非常重要的。SQL注入是一种常见的网络安全漏洞,攻击者通过在用户输入的数据中注入恶意的SQL代码,从而可以执行未经授权的数据库操作...【详细内容】
2023-11-13  Search: SQL注入  点击:(258)  评论:(0)  加入收藏
Django SQL注入漏洞 CVE-2022-28347
漏洞简介在Django 2.2 的 2.2.28 之前版本、3.2 的 3.2.13 之前版本和 4.0 的 4.0.4 之前版本中的 QuerySet.deexplain 中发现了SQL注入问题。这是通过传递一个精心编制的字...【详细内容】
2023-05-18  Search: SQL注入  点击:(253)  评论:(0)  加入收藏
WordPress插件多个SQL注入漏洞
漏洞0x00 漏洞概述2023年1月12日,Tenable Research的研究人员公开披露了多个WordPress 插件中的SQL注入漏洞,成功利用这些漏洞可以修改或删除网站数据、注入恶意脚本或获得对...【详细内容】
2023-01-16  Search: SQL注入  点击:(300)  评论:(0)  加入收藏
无列名SQL注入攻击
写在前面1.InnoDb引擎从MYSQL5.5.8开始,InnoDB成为其默认的存储引擎。而在MYSQL5.6以上的版本中,mysql数据库中的inndb增加了innodb_index_stats和innodb_table_stats两张表,这...【详细内容】
2022-12-14  Search: SQL注入  点击:(210)  评论:(0)  加入收藏
网站有SQL注入漏洞导致被入侵怎么修复
什么是SQL注入攻击?SQL注入是一种网站的攻击方法。它将SQL代码添加到网站前端GET POST参数中,并将其传递给mysql数据库进行分析和执行语句攻击。如何生成SQL注入漏洞的?1。网站...【详细内容】
2022-10-24  Search: SQL注入  点击:(390)  评论:(0)  加入收藏
网络安全:SQL注入,XSS攻击,CSRF攻击
端口扫描技术1、SQL注入Web安全三板斧之首,大名鼎鼎的SQL注入。 SQL注入攻击的核心在于让Web...【详细内容】
2022-08-11  Search: SQL注入  点击:(562)  评论:(0)  加入收藏
Web渗透_SQL注入3
如果无权读取information schema库 / 拒绝union、order by语句,只能通过猜测的方式: 猜列名 &#39; and asd is null--+ (+代表空格) 当我们执行之后,通过报错可看出来没有这...【详细内容】
2022-08-03  Search: SQL注入  点击:(305)  评论:(0)  加入收藏
记一次艰难的SQL注入(过安全狗)
前言最近在挖补天的src,然后挖出了不少SQL注入,完了出了数据库名就不管那么多提交了。今天挖了个报错注入的,突然一激灵,说我不能这样颓废下去了,刚好是个后台登录的界面,我决心要...【详细内容】
2022-04-19  Search: SQL注入  点击:(323)  评论:(0)  加入收藏
一张图片也能SQL注入?
作者:Lxxx声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天网安实验室及原作者无关,本文为合天网安实验室原创,如需转载,请注明出处!前言最...【详细内容】
2022-03-11  Search: SQL注入  点击:(365)  评论:(0)  加入收藏
▌简易百科推荐
保护隐私,从微信朋友圈开始
在这个信息化高速发展的时代,微信已经成为了我们生活中不可或缺的一部分。无论是工作沟通、亲友联络,还是日常的消遣娱乐,微信都扮演着重要的角色。而微信朋友圈,更是成为了我们...【详细内容】
2024-04-08    松鼠宝贝  Tags:微信朋友圈   点击:(8)  评论:(0)  加入收藏
加密领域的热门概念和创新应用
在当下快速发展的加密货币领域,BTC Layer 2(二层)概念、比特币商业场景型的应用、DePIN以及AI领域的全球GPU算力调度网等项目备受关注,被视为具有巨大潜力的创新方向。让我们一...【详细内容】
2024-03-20  曜楠科技    Tags:加密   点击:(18)  评论:(0)  加入收藏
让隐私数据不再裸奔!一文掌握加密技术,让你的隐私高枕无忧
随着互联网的普及和数字化进程的加速,加密技术已经成为我们生活中不可或缺的一部分。从保护个人隐私到保障国家安全,加密技术都发挥着至关重要的作用。今天,我们就来一起盘点一...【详细内容】
2024-02-19  媺媺熊    Tags:隐私数据   点击:(1)  评论:(0)  加入收藏
人人都该懂密码学,通用密码学原理与应用实战|完结无密
来百度APP畅享高清图片//下栽のke:http://quangneng.com/4061/标题:人人都该懂密码学:通用密码学原理与应用实战在当今数字化的世界中,密码学已经成为了信息安全的核心。不论是...【详细内容】
2024-02-06  阿小白    Tags:密码学   点击:(51)  评论:(0)  加入收藏
笔记本电脑如何设置开机密码
在信息化时代,笔记本电脑已经成为我们工作、学习和生活中不可或缺的工具。然而,与此同时,信息安全问题也日益突出。为了保护个人隐私和重要数据,设置开机密码成为了必不可少的一...【详细内容】
2024-01-30  雨后海棠    Tags:开机密码   点击:(34)  评论:(0)  加入收藏
什么是密钥扩展?如何确保密码安全?
译者 | 陈峻审校 | 重楼为了访问自己的数字账户,我们通常需要用到密码或口令。不过,正如现实生活中开锁的钥匙可能并不总是牢靠一样,并非所有的密码都是安全的。为了加强在线防...【详细内容】
2023-12-22    51CTO  Tags:密码   点击:(89)  评论:(0)  加入收藏
SQL注入漏洞的检测及防御方法
SQL注入(SQL Injection)是一种广泛存在于Web应用程序中的严重安全漏洞,它允许攻击者在不得到授权的情况下访问、修改或删除数据库中的数据。这是一种常见的攻击方式,因此数据库...【详细内容】
2023-12-01  兰花豆说网络安全  微信公众号  Tags:SQL注入   点击:(117)  评论:(0)  加入收藏
网络安全秘籍:打造隐私防护墙,保卫您的个人信息!
随着互联网的普及,越来越多的个人信息被储存在网络上。这些信息包括我们的通讯地址、购物记录、银行账号等,一旦被黑客窃取,后果将不堪设想。那么,如何保护个人隐私免受网络攻击...【详细内容】
2023-11-21  白面知识铺    Tags:网络安全   点击:(200)  评论:(0)  加入收藏
在数字时代,如何确保您的个人数据安全
随着我们生活中越来越多的信息数字化,个人隐私保护成为一个不容忽视的重要话题。无论是网络购物、社交媒体还是在线银行,我们的大量个人数据都在网络上流动。那么,如何保护我们...【详细内容】
2023-10-30  万花筒娱圈    Tags:个人数据   点击:(271)  评论:(0)  加入收藏
密码的末路!谷歌将密钥设为所有用户的默认登录方式
作者丨Carly Page编译丨诺亚近日,谷歌宣布,密钥正在成为所有用户的默认登录方法。因此,密钥也被这家科技巨头吹捧为密码“终结的开始”。密钥是一种防网络钓鱼的密码替代品,允许...【详细内容】
2023-10-19    51CTO  Tags:密钥   点击:(238)  评论:(0)  加入收藏
站内最新
站内热门
站内头条