web中间件

时间:2022-09-12 18:34:04

0x00 Web中间件概述

通俗来说,中间件是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。Apache的Tomcat、IBM公司的WebSphere、BEA公司的WebLogic、Kingdee公司的Apusic都属于中间件。中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。

本文主要讨论关于web中间件的漏洞。

0x01 IIS实验

1.1 端口修改

将80修改为8080
web中间件

验证
web中间件
web中间件

1.2 IP地址绑定

将unsigend改为dhcp到的ip
web中间件

1.3 新建index.html

index.html 显示效果:
web中间件

1.4 开启目录浏览

开启前:
web中间件

开启后:
web中间件

1.5 默认启用页面,例如a.html

文件目录结构:
web中间件

启用后:
web中间件

1.6 去掉匿名验证

去掉后访问时:
web中间件

输入用户名密码后访问成功:
web中间件

1.7 限制ip

限制规则:
web中间件

限制后:
web中间件

0x02 IIS解析漏洞

Web容器解析漏洞会将其他格式的文件,都当做该脚本语言的文件进行解析,执行里面的代码。

一般解析漏洞都是配合文件上传的功能一起进行利用。

例如,在parse_vul目录下新建a.asp,内容为:
web中间件

访问此文件:
web中间件

2.1 文件名解析

分号;截断
web中间件

.asa 后缀
web中间件
.cer 后缀
web中间件

2.2 文件夹解析

带有.asp 字符串的目录
web中间件

0x03 IIS put上传实验

题目链接 http://host.name/index/Topology/?id=162&name=course

3.1 利用Burp抓包

web中间件

3.2 修改请求方法为OPTIONS

web中间件
发现开启WebDAV,支持PUT方法

3.3 PUT 一句话asp马

web中间件
失败

3.3 PUT 后缀为.txt 的一句话asp马

web中间件
成功

3.4 MOVE 修改文件名

web中间件
成功

3.5 上菜刀

web中间件
bingo!

0x04 Apache实验

4.1 修改端口8080

web中间件

4.2 修改网站默认路径

更改
web中间件
效果
web中间件

0x05 Apache解析漏洞

题目链接 http://host.name/index/Topology/?id=75&name=course

web中间件

Apache在解析一个文件时,会从文件的右边开始解析,直到遇到一个可以识别的后缀,则停止解析。实验中的文件“2.php.rea”就会被解析为php文件。而在网页上传文件时,文件类型的判别是从文件的右边开始,“2.php.rea”就会被认为是rea文件(虽然这并不是一个正常的后缀名);如果网站是通过设置黑名单来判断能否上传文件,那么黑客就能利用这个漏洞上传一个木马到网站目录下。

0x06 Tomcat弱口令实验

题目链接 http://host.name/index/Topology/?id=153&name=course

6.1 打开tomcat

web中间件

6.2. 打开www.any.com/manager/html

web中间件

6.3.输入 用户名tomacat 密码tomcat 发现弱口令可以登录

web中间件

6.4.上传war

web中间件
上传成功
web中间件

6.5.验证

web中间件

6.6成功

web中间件

0x07 总结

综上,当中间件配置不好时,很容易被攻击者利用,因此在部署中间件时,要遵循最小原则,用不到的功能全部关闭,如webDAV,这是运维人员的责任,同时也是开发人员需要注意的地方。加固参考以下几点:

  • 如果将项目上线到生产环境测试,需要注意修改iis端口,同时修改DocumentRoot路径,例如将www改成www_JhUAQlja,防止sqlmap猜解
  • Apache服务器配置规则过滤掉含.php的路径请求
  • 口令一定要复杂,并定期更换
  • 服务器软件保持更新,因升级需要成本就放弃升级,是不负责任的表现

随机推荐

  1. c# 实现简单udp数据的发送和接收

    服务端代码 static void Main(string[] args) { UdpClient client = null; string receiveString = null; byte[] ...

  2. jquery选择器(总结)

    基本选择器 选择器 描述 示例 #id 根据给定的ID匹配一个元素 $("#id")   .class 根据制定的class匹配一个元素 $(".class") ...

  3. WEB实时聊天 comet推技术

    转自:http://www.cnblogs.com/wodemeng/archive/2012/04/06/2435302.html 今天晚上朋友遇到web服务端推技术的问题,自己就查了下资料,学习了 ...

  4. Leetcode 171 Excel Sheet Column Number python

    题目: Given a column title as appear in an Excel sheet, return its corresponding column number. For ex ...

  5. 【转】js程序中美元符号$是什么

    $符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的1.首先可以用来表示变量, 比如变量 var s='asdsd'或var $s='asdasd ...

  6. C++程序设计方法4:模板特化

    模板参数的具体化/特殊化 有时,有些类型不适用,则需要对模板进行特殊化处理,这称为“模板特化” 对函数模板,如果有多个模板参数,则特化时必须提供所有参数的特例类型,不能部分特化: 如: char *s ...

  7. ansible系列7-mysql_user模块

    添加mysql的用户和权限.密码 新增mysql用户zhang,设置登录密码zhang,给予权限zabbix.*:ALL ansible dba -m mysql_user -a 'login_hos ...

  8. 启用了不安全的HTTP方法【转】

    安全风险:       可能会在Web 服务器上上载.修改或删除Web 页面.脚本和文件. 可能原因:       Web 服务器或应用程序服务器是以不安全的方式配置的. 修订建议:       如果 ...

  9. Haproxy启动故障:Starting proxy:cannot bind socke

    Haproxy启动时提示失败: [ALERT] 146/132210 (3443) : Starting frontend Redis: cannot bind socket [0.0.0.0:637 ...

  10. 解决webpack不是内部命令

    在指定路径下安装webpack npm install webpack --save-dev 但是报”不是内部命令错误" 解决方法:安装全局webpack   npm install web ...