点击关注公众号,回复“1024”获取2TB学习资源!

大家好,今天给大家介绍一下,Web安全领域常见的一些安全问题。

1、SQL 注入

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

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

举例如下:

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

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

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

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

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

select name,[...] from t_user whereid=1or1=1

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

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

2、XSS 攻击

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

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

反射型

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

示例:

http://localhost:8080/test?name=<script>alert("you are under attack!")</script>
  • 2、用户点击后,该JS作为请求参数传给Web服务器后端

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

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

存储型

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

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

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

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

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

3、CSRF 攻击

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

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

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

4、DDoS 攻击

DDoS全称Distributed Denial of Service:分布式拒绝服务攻击(在这个文章里也有介绍:)。是拒绝服务攻击的升级版。拒绝攻击服务顾名思义,让服务不可用。常用于攻击对外提供服务的服务器,像常见的:

  • Web服务

  • 邮件服务

  • DNS服务

  • 即时通讯服务

  • ......

攻击者不断地提出服务请求,让合法用户的请求无法及时处理,这就是 DoS 攻击。

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

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

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

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

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

5、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协议之上的一个应用服务。

6、JSON 劫持

JSON是一种轻量级的数据交换格式,而劫持就是对数据进行窃取(或者应该称为打劫、拦截比较合适。恶意攻击者通过某些特定的手段,将本应该返回给用户的JSON数据进行拦截,转而将数据发送回给恶意攻击者,这就是JSON劫持的大概含义。一般来说进行劫持的JSON数据都是包含敏感信息或者有价值的数据。

7、暴力破解

这个一般针对密码而言,弱密码(Weak Password)很容易被别人(对你很了解的人等)猜到或被破解工具暴力破解。

解决方案 密码复杂度要足够大,也要足够隐蔽 限制尝试次数

8.、HTTP 报头追踪漏洞

HTTP/1.1(RFC2616)规范定义了 HTTP TRACE 方法,主要是用于客户端通过向 Web 服务器提交 TRACE 请求来进行测试或获得诊断信息。

当 Web 服务器启用 TRACE 时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中 HTTP 头很可能包括 Session Token、Cookies 或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。

解决方案:

禁用 HTTP TRACE 方法。

9、信息泄露

由于 Web 服务器或应用程序没有正确处理一些特殊请求,泄露 Web 服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。

所以一般需注意:

应用程序报错时,不对外产生调试信息 过滤用户提交的数据与特殊字符 保证源代码、服务器配置的安全

10、目录遍历漏洞

攻击者向 Web 服务器发送请求,通过在 URL 中或在有特殊意义的目录中附加 ../、或者附加 ../ 的一些变形(如 ..\ 或 ..// 甚至其编码),导致攻击者能够访问未授权的目录,以及在 Web 服务器的根目录以外执行命令。

11、命令执行漏洞

命令执行漏洞是通过 URL 发起请求,在 Web 服务器端执行未授权的命令,获取系统信息、篡改系统配置、控制整个系统、使系统瘫痪等。

12、文件上传漏洞

如果对文件上传路径变量过滤不严,并且对用户上传的文件后缀以及文件类型限制不严,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。

所以一般需注意:

在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件 限制相关目录的执行权限,防范 webshell 攻击

13、其他漏洞

  • SSLStrip 攻击

  • OpenSSL Heartbleed 安全漏洞

  • CCS 注入漏洞

  • 证书有效性验证漏洞

14、业务漏洞

一般业务漏洞是跟具体的应用程序相关,比如参数篡改(连续编号 ID / 订单、1 元支付)、重放攻击(伪装支付)、权限控制(越权操作)等。

15、框架或应用漏洞

  • WordPress 4.7 / 4.7.1:REST API 内容注入漏洞

  • Drupal Module RESTWS 7.x:Remote PHP Code Execution

  • SugarCRM 6.5.23:REST PHP Object Injection Exploit

  • Apache Struts:REST Plugin With Dynamic Method Invocation Remote Code Execution

  • Oracle GlassFish Server:REST CSRF

  • QQ Browser 9.6:API 权限控制问题导致泄露隐私模式

  • Hacking Docker:Registry API 未授权访问

作者:senntyou

segmentfault.com/a/1190000018004657

推荐阅读 点击标题可跳转

woc,又一个大佬辞职了……

神仙工具!百度网盘资源一键转存阿里云盘,YYDS

你还在 Docker 中跑 MySQL?恭喜你,好下岗了!

面试官:Nginx如何实现高并发?优化手段有哪些?

世界第三大浏览器正在消亡。。。

京东一面:请说出 ThreadLocal 的使用场景及使用方式

Spring Cloud 面试题(2021 最新版)

四张图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。

随手在看、转发是最大的支持!

常见网站攻击技术,一篇打包带走!相关推荐

  1. 常见 Web 攻击(前端篇)

    XSS Cross Site Scripting(跨站脚本攻击),因为缩写和 CSS 重叠,所以改叫 XSS.跨站脚本攻击是指通过存在安全漏洞的 Web 网址注册用户的浏览器内运行非本站点 HTML ...

  2. prerenderspaplugin 打包完成后如何让百度收录_网站优化技术第一篇(如何快速提升网站的收录量?)...

    以下分享来自于做网站的欧建站,平时总结的经验及结合众多同行经验而来 1.谷歌和百度的收录时间一般是多久? 百度和google收录的宣传手法大同小异,不用专门区别分开. 新站某度收录时间为半个月的时间, ...

  3. DDOS攻击详解——常见网站攻击手段原理与防御

    DDOS攻击为分布式拒绝服务攻击. DDOS攻击分类: 网络层攻击: SYN-flood:利用TCP建立连接时3次握手的"漏洞",发送源地址虚假的提交,永远无法完成三次握手.占满系 ...

  4. 【最新评估报告】最先进的EDR并不完美,无法检测到常见的攻击

    2022年1月份的一篇研究论文<An Empirical Assessment of Endpoint Detection and Response Systems against Advanc ...

  5. 【技术干货】浏览器工作原理和常见WEB攻击 (下)

    本文作者:上海驻云开发总监 陈昂 上篇给大家带来的是关于浏览器基本工作原理的总结和介绍,这篇文章重点给大家说明有哪些常见WEB攻击. 常见WEB攻击 互联网是个面向全世界的开放平台,越是开放的东西漏洞 ...

  6. 【网络安全】七个最常见的黑客攻击技术,98%的人都遇到过(通俗易懂版)

    前排提示:文章同样适用于非专业的朋友们,全文通俗化表达,一定能找到你亲身经历过的网络攻击(建议大家认真看完,这篇文章会刷新你对网络攻防的认知) 前言 在世界人口近80亿的地球上,每天尚且发生数以百万计 ...

  7. 常见的web攻击技术

    今天看图解http,里面讲了些常见的web攻击技术,写一个博客对其原理及其应对方式进行一个整理 1.xss跨站攻击技术:主要是攻击者往网页里嵌入恶意脚本,或者通过改变html元素属性来实现攻击,主要原 ...

  8. 常见的网站攻击以及如何防御自己的网站被恶意攻击

    常见的网站攻击 1,XSS攻击:Cross Site Script,跨站脚本攻击,指黑客通过篡改网页,在提交的内容中写一些恶意攻击的js脚本.举个例子,攻击者在网站留言或者发布带有恶意脚本的连接,诱导 ...

  9. 网站攻击的常见形式及应对方法

    互联网行业,一直是DDoS.CC等攻击的重灾区,所以做好攻击防御非常必要.但仍有一些互联网企业不重视安全防御,认为不会被攻击不做防御,结果遭到CC攻击,导致用户流失,项目直接崩了.无论是正规企业网站. ...

最新文章

  1. javascript之parseInt的用法分析
  2. java 队列 array_Java源码解析阻塞队列ArrayBlockingQueue常用方法
  3. 查看Nginx,Apache,lighttpd,Mysql,Php的编译参数
  4. 如何有效的在 LINQ 查询中处理异常?
  5. php制作留言板的题_PHP实现留言板功能实例代码
  6. 输出整形变量语句_Python合集之Python变量
  7. 错误提示:'……' is not assignable to Android.app.Activity Manifest XML
  8. harmonyos手机开发者beta,HarmonyOS 手机应用开发者 Beta 版到来,对开发者意味着什么...
  9. virtio、vhost和vhost-user比较
  10. Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析
  11. SAP License:SAP ECC6安装系列四:安装过程详解
  12. [安装项目]不可恢复的生成错误
  13. Hulu面试(或许待更)
  14. [转]初中英语书中的LiLei和Hanmeimei应该结婚了吧!
  15. 制作一个简单的时间表
  16. 不是美术生学3D建模多久能上手?靠自学很难学成功吗?
  17. 正则html在线测试,正则表达式在线测试工具
  18. 面向对象的3个基本对象
  19. Discuz!修改注册用户名长度限制的方法
  20. Mac终端提示:You have not agreed to the Xcode license agreements.

热门文章

  1. 2023深圳国际家用医疗及健康管理展览会
  2. 密室逃脱-第12届蓝桥杯Scratch国赛真题第5题
  3. 电子烟怎么选?不如先看看这篇EVOVE电子烟体验
  4. mysql 指令格式
  5. 手机棋牌运营方式方法
  6. 微信红包封面制作小程序开放,人人都可免费制作了!!!
  7. 头插法和尾插法建立带头节点的单链表
  8. CNN识别字符 训练
  9. 仿新浪微博大厅“大家正在说”功能的实现
  10. win2008r2 惠普g160鼠标_惠普电脑装win7键盘鼠标不能用解决方法全集(支持8/9/10代cpu usb)...