文章目录:
9. CVE_2018_11759 mod_jk访问控制绕过漏洞
中间件(英语:Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通
中间件:用户到数据库之间用到的软件
功能:将程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力
一:iis
iis是微软开发的web服务器,需要收费,主要用来跑 asp.net asp php,只能在windows下运行
前言
a 不同版本和安装
iis 5.x-6.x版本 服务器系统win2003/win xp iis 7.5 版本 服务器系统win2008r2/win7 iis 8.5 版本 服务器系统win2012r2/win8.1 iis 10.0 版本 服务器系统win2019/win10
安装
控制面板——> 程序——> 打开或关闭windows功能——> 勾选internet信息服务里面的所有选项 ——> 勾选internet information service 可承载的web核心 查看是否安装:看是否出现ip cmd——> ipconfig 启动iis 计算机——>鼠标右键管理——>服务和应用程序——>internet信息服务iis管理器 新建网站 internet信息服务iis管理器——>网站——>鼠标右键添加网站——>网站名称 物理路径 端口 目录浏览——>管理网站点击启动 默认文档——>添加index.asp首页 添加index.php首页 应用程序池——>找到新建的网站——>鼠标右键——>高级设置——>启动32应用程序设置为true 如果不能访问:关闭网络防火墙 控制面板——>网络和internet——>网络和共享中心——>windows防火墙——>打开或关闭windows防火墙——>取消勾选启动
b iis5.x-iis6.x
使用iis5.x-6.x版本的服务器,大多为windows server 2003,网站比较古老,开发语句一般为asp,该解析漏洞也只能解析asp文件 asp木马:<%eval request("chopper")%> php木马:<?php @eval($_POST['chopper']);?> 目录解析(6.0) 形式:www.xxx.com/xx.asp/xx.jpg 原理:服务器默认会把.asp,.asa目录下的文件都解析成asp文件 文件解析 形式:www.xxx.com/xx.asp;.jpg 原理:服务器默认不解析;号后面的内容,因此xx.asp;jpg便被解析成asp文件了 解析文件类型(IIS6.0 默认的) /test.asa /test.cer /test.cdx 修复方案 1.目前尚无微软官方的补丁,可以通过自己编写正则,阻止上传xx.asp;.jpg类型的文件名 2.做好权限设置,限制用户创建文件夹
c iis7.5
如果想装php的项目:安装phpstudy 如果发现漏洞没有产生 phpstudy——>phpstudy2018_fastcgi——>编辑——>请求限制——>取消勾选仅当请求映射至以下内容时才调用处理程序——>确定 在Fast-CGI开启状态下,在文件路径后加上 /xx.php ,即 xx.jpg/xx.php 会被解析为php文件 访问:xx.xx.xx.xx:xxxx/name.png/.php 防御:勾选上 仅当请求映射至以下内容时才调用处理程序——>确定
1.目录解析漏洞
漏洞描述:在IIS 5.x和6.0版本中,以特定后缀(如.asp、.asa、.cer、.cdx)命名的文件夹下的任何文件 无论其实际扩展名如何,都可能被当作ASP文件来解析执行 攻击者可以通过创建这样的文件夹并上传恶意文件,从而利用该漏洞执行任意代码 举例:假设在IIS服务器上存在一个名为“test.asp”的文件夹,攻击者在该文件夹内上传一个名为“1.jpg”的图片文件,并包含恶意ASP代码 当访问该图片文件时(如通过URL:http://target.com/test.asp/1.jpg),IIS会将其当作ASP文件来解析执行,从而触发漏洞
2.短文本漏洞
漏洞描述:为了兼容MS-DOS程序,Windows为文件名较长的文件生成了对应的8.3格式的短文件名 攻击者可以通过猜测短文件名来访问下载敏感资源或绕过某些限制 举例:假设存在一个长文件名“examplelongfilename.txt”,其对应的短文件名可能为“EXAMPL~1.TXT” 攻击者可以通过猜测短文件名来访问该文件,即使其长文件名被隐藏或更改
3.PUT上传漏洞
漏洞描述:当IIS服务器上的WebDAV服务被开启并配置了写入权限时,攻击者可以利用PUT请求上传任意文件到服务器上 这一漏洞通常与文件解析漏洞相结合使用,以实现远程代码执行 举例:攻击者构造一个PUT请求,将恶意代码包含在请求体中,并上传到服务器上的某个目录 (如通过URL:http://target.com/upload/) 工具iiswrite来进行漏洞利用:burp抓包,修改GET为OPTIONS发送,测试允许的方法 如果WebDAV服务被开启并配置了写入权限,攻击者就可以成功上传恶意文件
4.RCE-CVE-2017-7269
漏洞描述:CVE-2017-7269是一个远程代码执行漏洞,它影响开启了WebDAV服务的Windows Server 2003 R2上的IIS 6.0服务器 攻击者可以通过发送恶意的HTTP请求来利用该漏洞执行任意代码 举例:攻击者构造一个恶意的HTTP请求,并发送到存在CVE-2017-7269漏洞的IIS服务器上 如果服务器上的WebDAV服务被开启并配置了不当的权限,攻击者就可以利用该漏洞执行任意代码
5.HTTP.SYS远程代码执行(MS15-034)
漏洞描述:MS15-034是一个HTTP.SYS(一个系统核心组件)的远程代码执行漏洞 它影响Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1和Windows Server 2012 R2等操作系统上的IIS服务器 攻击者可以通过发送恶意的HTTP请求来利用该漏洞执行任意代码 举例:攻击者构造一个恶意的HTTP请求,并发送到存在MS15-034漏洞的IIS服务器上 如果服务器上的HTTP.SYS组件存在漏洞,攻击者就可以利用该漏洞执行任意代码,如读取服务器内存数据或导致服务器蓝屏等
6.CGI-PHP解析漏洞
漏洞描述:在IIS 7.0及以上版本中,当Fast-CGI功能被启用时,存在一个解析漏洞 攻击者可以在任意文件名后添加“/.php”,并诱导IIS服务器将其当作PHP文件来解析执行 这种漏洞通常与文件上传漏洞相结合,使得攻击者能够上传包含恶意PHP代码的文件,并通过该漏洞执行这些代码 举例:假设攻击者上传了一个名为“test.jpg”的图片文件,但实际上该文件包含了一段PHP代码 攻击者可以通过构造URL(如“http://target.com/upload/test.jpg/.php”)来诱导IIS服务器将其当作PHP文件来解析执行 如果服务器存在该漏洞,那么PHP代码就会被执行,从而可能导致服务器被攻击者控制
7.基于文件名的解析漏洞
漏洞描述:在IIS 5.x和6.0版本中,文件名中的分号(;)后面的内容会被忽略,导致文件被当作其前面的扩展名对应的文件类型来解析 这种漏洞使得攻击者可以通过上传带有分号的恶意文件名来绕过文件类型检查,并执行任意代码 举例:攻击者上传一个名为“test.asp;.jpg”的文件 由于IIS会忽略分号后面的“.jpg”,因此该文件会被当作ASP文件来解析执行 如果攻击者在文件中包含了恶意ASP代码,那么这些代码就会被执行,从而可能导致服务器被攻击者控制
8.基于文件夹的解析漏洞
漏洞描述:在IIS 5.x和6.0版本中,以特定后缀(如.asp、.asa、.cer、.cdx)命名的文件夹下的任何文件,无论其实际扩展名如何,都可能被当作ASP文件来解析执行 这种漏洞使得攻击者可以通过创建这样的文件夹并上传恶意文件,从而利用该漏洞执行任意代码 举例:假设在IIS服务器上存在一个名为“test.asp”的文件夹,攻击者在该文件夹内上传一个名为“1.jpg”的图片文件,并包含恶意ASP代码 当访问该图片文件时(如通过URL:“http://target.com/test.asp/1.jpg”),IIS会将其当作ASP文件来解析执行,从而触发漏洞 如果攻击者在ASP代码中包含了恶意操作,那么这些操作就会被执行,从而可能导致服务器被攻击者控制
二:nginx
ngnix是反向代理服务器,它是代理,本身并不执行,是个传话筒,把用户提交的请求转发给web服务器,再把web服务器的结果转发给用户
nginx
有着和iis7
一样的漏洞http://xx.xx.xx.xx/xx.txt/.php http://xx.xx.xx.xx/xx.txt%00.php http://xx.xx.xx.xx/xx.txt/%20\1.php http://xx.xx.xx.xx/xx.txt\0a.php
Fast-CGI
Fast-CGI关闭 在文件路径(xx.jpg)后面加上 %00.php , 即xx.jpg%00.php 会被当做 php 文件来解析 Fast-CGI开启 在文件路径后加上 /xx.php ,则 xx.jpg/xx.php 会被解析为php文件
1.配置不当造成的解析漏洞
定义:这种漏洞主要是由于Nginx或PHP的配置文件设置不当导致的 例如,Nginx配置文件(nginx.conf)可能错误地将以“.php”结尾的文件交给fastcgi处理,而不管文件实际的内容或扩展名 攻击者可以利用这一点,通过在任意文件名后添加“.php”后缀,尝试将文件作为PHP代码执行 举例:攻击者上传一个名为“image.jpg”的图片文件,但在请求时将其修改为“image.jpg/.php” 如果Nginx配置不当,它可能会将该文件作为PHP代码执行,从而允许攻击者执行任意PHP代码
2.文件后缀解析漏洞
定义:这种漏洞与Nginx或PHP的版本无关,主要是由于用户配置不当 攻击者可以通过在文件名后添加特定的后缀序列,尝试绕过文件类型检查并执行任意代码 举例:攻击者上传一个名为“shell.jpg”的文件,但在文件名后添加了一个空格和“.php”后缀 (例如,“shell.jpg[空格].php”)。在某些配置不当的服务器上,这个文件可能会被当作PHP代码执行
3.空字节解析漏洞
定义:空字节解析漏洞是一种特殊的文件解析漏洞,它利用了某些编程语言(如PHP)在处理字符串时的底层特性 攻击者通过在文件名中插入空字节(%00),尝试截断文件名并绕过文件类型检查 举例:攻击者上传一个名为“info.png%00.php”的文件 由于空字节的存在,服务器在处理该文件名时可能会将其截断为“info.png”,但将其作为PHP代码执行
4.文件名逻辑漏洞 CVE-2013-4547
定义:这是一个具体的Nginx漏洞,它允许攻击者通过精心构造的URL绕过安全限制,访问或执行受保护的文件 该漏洞利用了Nginx在处理URL时的逻辑错误 a.jpg\x20\x00.php [0x20]表示空格字符,[0x00]表示截止符\0。这两个字符都不需要编码 举例:攻击者发送一个包含非编码空格和空字节的URL (例如,“http://127.0.0.1/a.jpg\x20\x00.php”) Nginx在处理该URL时可能会将其解析为有效的PHP文件并执行
5.CGI-PHP解析漏洞
定义:这种漏洞通常与PHP的cgi.fix_pathinfo配置选项有关 当该选项设置为1时,PHP会对文件路径进行“修理”,并尝试执行不存在的文件路径中的PHP代码 举例:攻击者上传一个名为“1.jpg”的图片文件,并在请求时添加一个不存在的PHP文件后缀 (例如,“1.jpg/abc.php”) 如果cgi.fix_pathinfo设置为1且Nginx配置不当,PHP可能会尝试执行“1.jpg”文件作为PHP代码
6.畸形解析漏洞
定义:Nginx畸形解析漏洞通常是由于用户配置不当,导致Nginx将非PHP文件当作PHP文件来解析执行 漏洞原理:当php的配置文件php.ini中开启了cgi.fix_pathinfo,并且Nginx配置中的security.limit_extensions设置不正确时 就可能导致Nginx将其他格式的文件作为PHP文件来解析执行 Nginx在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片等文件中嵌入PHP代码,然后通过访问xxx.jpg%00.php来执行其中的代码 举例:假设服务器上有一个名为test.jpg的图片文件,攻击者在图片中嵌入了PHP代码 攻击者通过访问test.jpg%00.php Nginx可能会将test.jpg当作PHP文件来解析执行,从而执行图片中的PHP代码
7.CRLF注入漏洞
定义:CRLF注入漏洞是由于Nginx对用户输入没有进行严格的验证,导致攻击者可以输入恶意的CRLF字符(回车和换行符),从而进行攻击 漏洞原理:Nginx会将$uri进行解码,如果传入%0a%0d(即CRLF字符),就可能造成CRLF注入漏洞 CRLF注入漏洞可以造成Cookie会话固定、跨站脚本攻击(XSS)等安全问题 举例:假设Nginx的配置文件中存在以下错误的配置: nginx location / { return 302 https://$host$uri; } 攻击者可以通过发送带有恶意CRLF字符的请求来利用此漏洞 例如,攻击者发送以下请求: http://vulnerable-nginx-server/%0a%0dSet-cookie:JSPSESSID%3D360 Nginx可能会将请求中的CRLF字符解码为回车和换行符,并将其插入到HTTP响应头中,从而导致Cookie会话固定等安全问题
8.目录穿越漏洞
定义:Nginx目录穿越漏洞是由于Nginx在配置别名(Alias)时忘记加“/”,导致攻击者可以访问到服务器上的其他目录 如果配置中存在类似 location /foo { alias /bar/; } 的配置时,/foo../ 会被解析为 /bar/../ 从而导致目录穿越的发生 漏洞原理:当Nginx配置别名时,如果忘记在目标路径后加“/”,攻击者就可以通过构造特殊的URL来访问到服务器上的其他目录 举例:假设Nginx的配置文件中存在以下错误的配置: nginx location /files { alias /home/; } 攻击者可以通过访问以下URL来利用此漏洞: http://vulnerable-nginx-server/files../etc/passwd Nginx可能会将请求中的“../”解析为上一级目录,从而允许攻击者访问到/etc/passwd等敏感文件
10.目录遍历漏洞
漏洞描述:Nginx的目录遍历漏洞允许攻击者通过构造特殊的URL来访问服务器上的任意文件,甚至可能泄露敏感信息或执行恶意代码 这种漏洞通常是由于Nginx配置文件中对目录浏览功能(autoindex)的错误设置,或者对别名(alias)配置的不当处理所导致的 漏洞原理 autoindex配置不当:当Nginx的autoindex参数被设置为on时,服务器将允许用户浏览目录中的文件和子目录 如果攻击者能够访问到包含敏感信息的目录,就可能造成信息泄露 alias配置不当:当Nginx在处理静态文件时,如果使用了alias指令来设置文件路径的别名,并且配置不当(如忘记在别名后添加斜杠“/”),就可能导致目录穿越漏洞 攻击者可以通过构造特殊的URL来访问到别名所指向目录之外的文件 漏洞举例 假设有一个Nginx服务器,其配置文件(nginx.conf)中存在以下配置 nginx location /files { alias /home/; } 这里的配置意图是让用户通过访问http://your-server-ip/files/来浏览/home/目录下的文件 然而,由于alias指令后没有添加斜杠“/”,这就可能导致目录穿越漏洞 攻击者可以构造以下URL来尝试访问/home/目录之外的文件: http://your-server-ip/files../some_other_directory/sensitive_file.txt
三:apache
apache是apache基金会的web服务器,在linux上运行,免费,只支持静态页面,是html容器
1.未知后缀名解析
描述:Apache默认一个文件可以有多个以点分割的后缀,当最右边的后缀无法识别(不在mime.types文件内),则继续向左识别,直到识别到合法后缀才进行解析 这可能导致攻击者上传包含恶意代码的文件,并绕过服务器的安全策略 apache可以解析为php文件的后缀:phtml、pht、php3、php4、php5 举例:攻击者可能上传一个名为“shell.php.xxx”的文件,其中“.xxx”是一个未知扩展名 由于Apache会继续向左识别,直到找到“.php”这一合法后缀,因此该文件会被当作PHP文件来解析和执行
2.换行解析漏洞(CVE-2017-15715)
描述:在Apache HTTPD的2.4.0至2.4.29版本中,存在一个换行解析漏洞 攻击者可以通过在文件名中添加特定的换行符(如“\x0a”),绕过服务器的安全策略,使其被解析成PHP文件而不是普通文件 举例:攻击者可以将一个名为“1.php\x0a”的文件上传到服务器上。、 由于文件名中的换行符,服务器会将其解析为PHP文件,并执行其中的恶意代码
3.AddHandler导致的解析漏洞
描述:当Apache的配置文件中存在不当的AddHandler指令时,可能会导致文件解析漏洞 例如,如果AddHandler指令将某个未知扩展名映射到PHP处理器,那么攻击者就可以上传包含恶意代码的文件,并使其被当作PHP文件来执行 举例:在httpd.conf文件中,如果存在类似“AddHandler application/x-httpd-php .unknown”的配置 那么攻击者就可以上传一个名为“shell.unknown”的文件,并使其被当作PHP文件来执行
4.目录遍历漏洞
描述:当Apache服务器配置不当,允许客户端访问到一个目录时 如果没有找到默认的index文件,服务器可能会列出当前目录下的所有文件或返回403状态码 这可能导致敏感信息泄露或允许攻击者访问不应被访问的文件 举例:如果Apache服务器的httpd.conf文件中存在类似“Options +Indexes”的配置 那么当客户端访问到一个没有index文件的目录时,服务器就会列出该目录下的所有文件
5.CVE_2021_41773 目录穿越漏洞
描述:Apache HTTP Server 2.4.49版本中存在一个路径穿越漏洞(CVE-2021-41773) 攻击者利用此漏洞,可以读取Apache服务器web目录以外的其他文件,或读取web中的脚本源码 如果服务器开启了CGI或cgid服务,攻击者还可以进行任意代码执行 举例:攻击者通过发送特制的URL请求,利用路径穿越漏洞访问服务器上的敏感文件 例如,攻击者可能尝试访问/icons/..%252e%252e%252f..%252e%252e%252fetc/passwd来获取服务器上的/etc/passwd文件内容
6.CVE_2021_42013 路径穿越漏洞
描述:CVE-2021-42013是CVE-2021-41773的后续漏洞,影响Apache HTTP Server 2.4.50版本 该漏洞允许攻击者绕过路径遍历保护,使用编码读取网络服务器文件系统上的任意文件 举例:与CVE-2021-41773类似,攻击者通过发送经过编码的URL请求,利用路径穿越漏洞访问服务器上的敏感文件 由于修复不完整,CVE-2021-42013在2.4.50版本中仍然存在
7.CVE-2017-15715 文件解析漏洞
描述:Apache HTTP Server存在一个文件解析漏洞(CVE-2017-15715) 允许攻击者通过上传包含恶意代码的文件,并添加特定的换行符(如\x0a),绕过服务器的安全策略,使其被解析成PHP文件并执行 举例:攻击者上传一个名为shell.php\x0a的文件到服务器上 由于文件名中的换行符,服务器会将其解析为PHP文件,并执行其中的恶意代码
8.CVE_2017_9798 信息泄露漏洞
描述:Apache HTTP Server <= 2.2.34、2.4.x <= 2.4.27版本中存在一个信息泄露漏洞(CVE-2017-9798) 若能在用户.htaccess文件中设置Limit指令,或httpd.conf中有某些错误配置(即Optionsbleed),则远程攻击者可读取进程内存敏感数据 举例:攻击者通过发送HTTP OPTIONS请求,利用Optionsbleed漏洞读取服务器进程内存中的敏感数据 这些数据可能包括服务器配置、用户数据等
9. CVE_2018_11759 mod_jk访问控制绕过漏洞
描述:Apache mod_jk Connector存在一个访问控制绕过漏洞(CVE-2018-11759) 允许攻击者绕过由JkMount httpd指令所定义的端点的访问控制限制 举例:攻击者通过在jkstatus路径后添加特定的字符(如;) 绕过Apache mod_jk Connector的访问控制限制,访问不应被访问的资源
10.CVE_2021_37580 身份验证绕过漏洞
描述:Apache ShenYu Admin存在一个身份验证绕过漏洞(CVE-2021-37580) 由于ShenyuAdminBootstrap中JWT的错误使用,导致攻击者可以绕过身份验证,直接进入目标系统后台 举例:攻击者通过发送包含特制JWT token的HTTP请求 绕过Apache ShenYu Admin的身份验证机制,访问受保护的资源
11.Lighttpd服务器
描述:Lighttpd服务器在某些情况下可能会受到与文件解析相关的漏洞影响,这可能导致“xx.jpg/xx.php”这样的请求被错误地解析为PHP文件 这通常是由于Lighttpd在处理FastCGI请求时的配置不当或安全漏洞所导致的。 举例(基于已知漏洞):在Lighttpd的某些版本中,如果FastCGI模块被启用,并且配置不当,攻击者可能会利用特定的URL构造方式 (如“xx.jpg/xx.php”)来尝试将图片文件作为PHP脚本执行 这种情况下,Lighttpd可能会错误地将请求中的图片文件路径解析为PHP文件路径,并尝试执行其中的PHP代码 然而,需要注意的是,这种漏洞通常需要管理员在Lighttpd的配置文件中进行不当设置或未及时更新补丁才能被利用
四:tomcat
tomcat是apache基金会的java服务器,主要用来跑jsp php python等
1.弱口令
描述:弱口令是指系统或应用的用户账户使用了过于简单或容易猜测的密码 在Tomcat中,如果管理员设置了弱口令,攻击者可能会通过暴力破解或字典攻击等方式获取管理员权限 在tomcat8环境下默认进入后台的密码为tomcat/tomcat,未修改造成未授权即可进入后台 举例:Tomcat的管理员账户默认密码为“tomcat”,如果管理员没有更改此密码,攻击者可能会尝试使用此密码登录Tomcat的管理界面,进而执行恶意操作
靶场:Vulhub - Docker-Compose file for vulnerability environment
地址:192.168.172.169:8080/manager/html burp抓包——>发送到intruder爆破
2.文件写入
描述:文件写入漏洞允许攻击者向服务器写入恶意文件,这些文件可能会被服务器执行或用于其他恶意目的 举例:如CVE-2017-12615漏洞 当Tomcat运行在Windows操作系统上,并且启用了HTTP PUT请求方法时,攻击者可以通过构造特定的PUT请求 在服务器上任意写入文件,包括JSP文件。上传成功后,攻击者可以通过请求这些JSP文件来执行其中的恶意代码
3.文件上传
描述:文件上传漏洞允许攻击者上传恶意文件到服务器,这些文件可能会被服务器执行或用于其他恶意目的 与文件写入漏洞类似,但文件上传通常涉及用户交互 举例:在Tomcat中,如果应用没有正确验证或限制上传的文件类型和大小 攻击者可能会上传恶意文件(如JSP文件或包含恶意代码的WAR文件),然后通过请求这些文件来执行恶意代码
4.文件包含
描述:文件包含漏洞允许攻击者通过服务器包含并执行任意文件 这通常是由于服务器没有正确验证或限制包含的文件路径所导致的 举例:在Tomcat中,如果应用使用了文件包含功能(如JSP中的<%@ include file="..." %>指令) 并且没有正确验证或限制包含的文件路径,攻击者可能会尝试包含并执行服务器上的任意文件
5.远程代码执行
描述:允许攻击者通过服务器执行任意代码。这通常是由于服务器存在安全漏洞或配置不当所导致的 举例:某些特定的Tomcat版本可能存在反序列化漏洞,攻击者可以通过发送恶意序列化的对象来执行任意代码
6.拒绝服务漏洞
描述:允许攻击者通过发送大量恶意请求或数据来消耗服务器的资源,从而导致服务器无法响应正常请求 举例:如CVE-2020-13935漏洞 当Tomcat接收到大量特定类型的WebSocket请求时,可能会触发内存不足异常(OutOfMemoryException)或无限循环,从而导致服务器拒绝服务
7.反序列化漏洞
描述:允许攻击者通过发送恶意序列化的对象来执行任意代码或触发安全漏洞 这通常是由于服务器在处理反序列化数据时没有进行足够的安全验证所导致的 举例:在某些Tomcat版本中,如果应用使用了Java序列化功能,并且没有正确验证或限制反序列化的数据 攻击者可能会发送恶意序列化的对象来执行任意代码或触发其他安全漏洞