参考链接:https://www.cnblogs.com/wjw-zm/p/11802615.html

一.常见中间件

1、中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。

2、中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

3、中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
IIS、Apache、Nginx、Tomcat等

二.中间件漏洞

2.1IIS漏洞

iis是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。
IIS的安全脆弱性曾长时间被业内诟病,一旦IIS出现远程执行漏洞威胁将会非常严重。远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码,可以导致IIS服务器所在机器蓝屏或读取其内存中的机密数据.

1.PUT漏洞介绍及成因:

IIS Server在Web服务扩展中开启WebDAV ,配置了可以写入权限,造成任意文件上传,受影响版本:IIS6.0,漏洞复现:开启WebDAV和写入权限.

1.1WebDAV:

处理服务器上 WebDAV 发布目录中的资源。使用此功能,其优点例如:

1.具有正确权限的用户可以在 WebDAV目录中复制和移动文件。

2.修改与某些资源相关联的属性。例如,用户可写入并检索文件的属性信息。

3.锁定并解锁资源以便多个用户可同时读取一个文件。但每次只能有一个人修改文件。

4.搜索 WebDAV 目录中的文件的内容和属性。
· 改写保护
· 资源管理
· 文档属性
通过对于IIS上传一句话木马,进行后门连接。

1.2PUT漏洞修复

:关闭WebDAV和写入权限.

2.短文件名猜解漏洞介绍及成因:

IIS的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400。

假设一个网站下存在一个文件名叫做abcdefgh.txt
我们可以构造http://127.0.0.1/~1/a.apx
是查找匹配n个字符,匹配1之后的n个字符
可以匹配n个字符,也可以为0
构造http://127.0.0.1/ttt
~1*/a.apx
正常的话会出现第一个构造的连接应当存在文件,所以会返回404,如果没有
则会返回400状态码

1.常见浏览器状态码:

1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

HTTP状态码列表
状态码 状态码英文名称 中文描述
100 Continue 继续。客户端应继续其请求
101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
200 OK 请求成功。一般用于GET与POST请求
201 Created 已创建。成功请求并创建了新的资源
202 Accepted 已接受。已经接受请求,但未处理完成
203 Non-Authoritative Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205 Reset Content 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206 Partial Content 部分内容。服务器成功处理了部分GET请求
300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303 See Other 查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305 Use Proxy 使用代理。所请求的资源必须通过代理访问
306 Unused 已经被废弃的HTTP状态码
307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向
400 Bad Request 客户端请求的语法错误,服务器无法理解
401 Unauthorized 请求要求用户的身份认证
402 Payment Required 保留,将来使用
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405 Method Not Allowed 客户端请求中的方法被禁止
406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求
407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408 Request Time-out 服务器等待客户端发送的请求时间过长,超时
409 Conflict 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突
410 Gone 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息
412 Precondition Failed 客户端请求信息的先决条件错误
413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理
415 Unsupported Media Type 服务器无法处理请求附带的媒体格式
416 Requested range not satisfiable 客户端请求的范围无效
417 Expectation Failed 服务器无法满足Expect的请求头信息
500 Internal Server Error 服务器内部错误,无法完成请求
501 Not Implemented 服务器不支持请求的功能,无法完成请求
502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
505 HTTP Version not supported 服务器不支持

2.漏洞修复

1.升级.net framework;
2.修改注册表禁用短文件名功能;
3.快捷键Win+R打开命令窗口,输入regedit打开注册表窗口,找到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将其中NtfsDisable8dot3NameCreation这一项的值设为 1,1代表不创建短文件名格式,修改完成后,需要重启系统生效;
4.CMD关闭NTFS 8.3文件格式支持;
5.将web文件夹的内容拷贝到另一个位置,如c:\www到d:\w,然后删除原文件夹,再重命名d:\w到c:\www

3.远程代码执行漏洞

在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行构造的时候,引发栈溢出,从而导致远程代码执行,漏洞复现:漏洞环境搭建:在Windows server 2003 r2 32位上安装iis6.0,触发漏洞:在本地执行exp。

1.栈溢出

要了解栈的结构,他是一种数据由高地址指向低地址,数据先进后出的一种数据结构,类似像瓶子里面放东西,后放进去的东西先出来。
所谓栈溢出就是在程序执行的时候,覆盖原本的程序执行的地址,在调用一个函数时,系统会为这个函数分配一个栈帧,栈帧空间为该函数所独有。
栈溢出是指向向栈中写入了超出限定长度的数据,溢出的数据会覆盖栈中其它数据,从而影响程序的运行。

如果我们计算好溢出的长度,编写好溢出数据,让我们想要的地址数据正好覆盖到函数返回地址,那么被调函数调用完返回主函数时,就会跳转到我们覆盖的地址上。通过这样改变程序流程,接下来我们就可以干很多坏事了!

2.C语言比较危险的函数对于数据长度没有进行限制

gets()
strcpy
strcat
sprintf

3.防护

关闭WebDAV,对于用户输入的数据长度内容进行限制

4.解析漏洞

URL中文件后缀是 .php ,便无论该文件是否存在,都直接交给 php 处理,而 php 又默认开启 “cgi.fix_pathinfo”, 会对文件进行 “ 修理 ” ,可谓 “ 修理 ” ?举个例子,当 php 遇到路径 “/aaa.xxx/bbb.yyy” 时,若 “/aaa.xxx/bbb.yyy” 不存在,则会去掉最后的 “bbb.yyy” ,然后判断 “/aaa.xxx” 是否存在,若存在,则把 “/aaa.xxx” 当作文件,若有文件 test.jpg ,访问时在其后加 /.php ,便可以把 “test.jpg/.php” 交给 php , php 修理文件路径 “test.jpg/.php” 得到 ”test.jpg” ,该文件存在,便把该文件作为 php 程序执行。

1.漏洞复现:利用方式:

第一种是新建名为 “test.asp”目录,该目录中的任何文件都被IIS当作asp程序执行,特殊符号是 “/”:

2.漏洞复现:利用方式:

第二种是上传名为 “test.asp;.jpg” 的文件,虽然该文件真正的后缀名是 “.jpg”, 但由于含有特殊符号 “;” ,仍会被 IIS 当做asp程序执行:

3.文件解析漏洞修复

1.对新建目录文件名进行过滤,不允许新建包含‘.’的文件;
2.曲线网站后台新建目录的功能,不允许新建目录;
3.限制上传的脚本执行权限,不允许执行脚本;
4.过滤.asp/xm.jpg,通过ISApi组件过滤

2.2Apache解析漏洞

Apache文件解析漏洞与用户的配置有密切关系,严格来说属于用户配置问题。,Apache文件解析漏洞涉及到一个解析文件的特性:Apache默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法识别,不在mime.tyoes内,则继续向左识别,当请求这样一个文件:shell.xxx.yyy
yyy->无法识别,向左

xxx->无法识别,向左

1.可以识别文件的后缀名的配置文件所在目录

C:/apache/conf/mime.types,放置在Apache安装的文件配置目录下面
AddCharset语句添加映射,如:

AddCharset us-ascii   .ascii .us-ascii
AddCharset ISO-2022-CN .iso2022-cn .cis

引用:https://blog.csdn.net/qq_32434307/article/details/79480316

2.多后缀名

对比Windows操作系统,如果存在这样一个文件名称:test1.jpg.txt.php.mp3,Windows会认为这是一个mp3文件,但是Apache文件认为可以有多个文件名后缀,就会造成如果后缀无法识别就继续向前移动识别后缀名称

3.防护

Apache解析漏洞修复:将AddHandler application/x-httpd-php .php配置文件删除.

2.3Apache目录遍历漏洞

Apahce中httpd.conf配置错误导致,目录遍历(路径遍历)是由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以使web根目录以外的文件),甚至执行系统命令。

修复

修改apache配置文件httpd.conf,找到
Options+Indexes+FollowSymLinks +ExecCGI
并修改成
Options-Indexes+FollowSymLinks +ExecCGI
并保存:

2.4Nginx文件解析漏洞

文件解析漏洞和Apache的解析漏洞是一样的都是因为文件配置错误出现的漏洞

对任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加test.jpg/x.php进行解析攻击,漏洞复现:在网站根目录下新建一个i.gif的文件,在里面写入phpinfo(),在浏览器中打开测试:

利用文件解析漏洞,输入192.168.139.129:100/i.gif.2.php,发现无法解析:

但是当
将/etc/php5/fpm/pool.d/www.conf中security.limit_extensions = .php中.php删除:

就可已正常进行访问,漏洞出现

Nginx文件解析漏洞修复:

1.将php.ini文件中的cgi.fix_pathinfo的值设为0.这样php在解析1.php/1.jpg这样的目录时,只要1.jpg不存在就会显示404;2.将/etc/php5/fpm/pool.d/www.conf中security.limit_ectensions后面的值设为.php.

2.5Nginx目录遍历漏洞

也是配置问题
修改/etc/nginx/sites-avaliable/default,在如下图所示的位置添加autoindex on/

OWASP A4 使用已知漏洞的插件相关推荐

  1. Variant Analysis(变种分析)——使用已知漏洞发掘未知漏洞

    文章目录 前言 1.variant Analysis (变种分析)是什么? 从哪里开始 2.常用技术 2.1 控制流分析(Control flow analysis (CFA)) 2.2 数据流分析 ...

  2. python open 函数漏洞_Python系列之——编写已知漏洞exp实现批量getshell

    作者:奶权 前面一篇Python系列之--zzcms漏洞挖掘到exp编写相信大家应该都读过了 大家应该都觉得用程序实现自动化漏洞利用很爽吧 今天就来教一下大家怎么通过已知的漏洞编写exp 0x01 漏 ...

  3. 已知思科ASA设备漏洞仍在其新版本中存在

    近日,名为"Shadow Brokers(影子经纪人)"的黑客组织声称成功入侵了跟NSA相关的Equation Group(方程式组织)的计算机系统,并成功窃取到了大量的机密信息以 ...

  4. 超 8 成软件存已知高危开源漏洞,奇安信发布《2021 中国软件供应链安全分析报告》

    编辑 | 宋 慧 出品 | CSDN云计算 头图 | 付费下载于东方IC 2020年底,SolarWinds 遭受的大规模网络攻击,使得美国和多国政府在内的 18000+ 机构被影响.几乎每个月,软件 ...

  5. 1500万公开服务易受 CISA 已知已遭利用漏洞攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Rezilion 公司发布报告称,超过1500万家公开服务至少易受CISA 已知已利用漏洞 (KEV) 分类清单(共896个)中一种漏洞的影响. ...

  6. Java项目代码依赖包安全漏洞检测插件Dependency Check

    最近在搞Java的后端项目,需要更新jar依赖包,找到了一个jar包漏洞检测的插件Dependency Check. Dependency-Check是OWASP(Open WebApplicatio ...

  7. OWASP A4 Insecure Design(不安全的设计)

    Insecure Design(不安全的设计) 这个是 OWASP 在今年新出的类别. 根据 OWASP 的说法,这一类着重于在设计与架构中的风险.来呼吁更多使用到威胁建模,安全设计模式与参考架构. ...

  8. 网易SRC指责白帽子私自披露已修复漏洞,强势表态违刑必究

    本文讲的是网易SRC指责白帽子私自披露已修复漏洞,强势表态违刑必究,网络安全法实施第一天,网易安全应急响应中心(NSRC)和一位白帽子争执了起来. 在今天下班时分,网易SRC发布了一则言辞极为激烈的声 ...

  9. ATTCK框架简介 已知攻击技术汇总

    一.ATT&CK框架背景介绍 MITRE是美国政府资助的一家研究机构,该公司于1958年从MIT分离出来,并参与了许多商业和最高机密项目.其中包括开发FAA空中交通管制系统和AWACS机载雷达 ...

最新文章

  1. How those spring enable annotations work--转
  2. P2184 【贪婪大陆】
  3. java.lang.RuntimeException: can not run elasticsearch as root
  4. 机器学习java_如何开始使用Java机器学习
  5. 前端学习(1672):前端系列实战课程之加速减速运动
  6. java中文件选择器JFileChooser的用法
  7. Android 中文件类型与MIME的匹配表
  8. 习题4-6 水仙花数(20 分)
  9. python上机实验报告读取文件_Python程序设计实验报告八:文件
  10. 初识python之django创建工程
  11. 动态规划练习合集(c++)
  12. 使用二维码识别技术的好处_二维码门禁系统,是如何实现解密开锁的呢?
  13. 服务器自动访问iis,设置IIS服务器定时自动重启的方法以Windows Server 2008为例
  14. 51单片机——独立按键
  15. excel制作甘特图
  16. 我在CSDN的2021--一次没有专栏的写在尾声
  17. 如何通俗的理解函数的极限_(高等数学笔记)萌新也能理解的函数极限求法
  18. Python:实现sha1算法(附完整源码)
  19. 【转贴】看星际争霸人工智能伯克利如何“主宰”了“2010星际争霸人工智能挑战赛”...
  20. firefox 14 vim化——Pentadactyl

热门文章

  1. 某知名新媒体公司(北京/深圳/上海)
  2. svn下载与安装(内含汉化,亲测可用)
  3. vue3 效率的提升、composition-api 和 ref 详解
  4. 突然远程桌面连接不上
  5. Debug Error: abort() has been called解决办法
  6. MVC5 - ASP.NET Identity登录原理-Claims-based认证和OWIN
  7. vbs小游戏(猜字谜)
  8. freescale R10 ipu lib 分析 - ipu_common.c
  9. CUDA学习之CUDA执行模型--part3
  10. 【附源码】计算机毕业设计JAVA支部党建工作