文章目录
一、在vps安装docker和docker-compose
二、 vulhub漏洞复现
2.1 tomcat
启动docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
安装完成docker和docker-compose后,拉取Vulhub到本地任意目录即可
成功开启靶场
docker compose up -d
tomacat后台文件上传getshell
登录存在弱口令,账号:tomcat密码:tomcat
成功登录后,用哥斯拉生成木马jsp,通过在cmd中jar -cvf shell.war x.jsp生成shell.war
将1.jsp上传
通过哥斯拉连接
上传成功
2.2 weblogic
在vulhub靶场启动weblogic,浏览器打开http://IP:7001/console进入后台,通过弱口令weblogic:Oracle@123登录
任意文件读取非弱口令情况:
访问http://IP:7001/hello/file.jsp?path=/etc/passwd可成功读取passwd文件
2.3 apache 换行解析/drud RCE
进入网页上传php文件
用bp进行抓包,上传正常的php文件会被黑名单拦截,对.php进行修改在后面加一个空格,并在后面插入0A后成功上传
用蚁剑连接成功
2.4 漏洞成因
1.Tomcat
- 配置错误:默认配置可能不够安全,未及时更新的版本可能存在已知漏洞。
- 应用漏洞:部署的Web应用程序可能存在代码漏洞,如SQL注入、XSS等。
- 权限管理不当:未正确配置用户权限,导致未授权访问。
2. WebLogic
- 补丁管理不善:未及时应用Oracle发布的安全补丁,导致已知漏洞被利用。
- 默认凭证:使用默认的管理凭证,攻击者可以轻易获取管理权限。
- 不安全的配置:如未启用SSL/TLS,导致数据传输过程中的信息泄露。
3. Apache
- 模块漏洞:某些Apache模块(如mod_ssl)可能存在漏洞,攻击者可以利用这些漏洞进行攻击。
- 配置不当:如未正确配置CORS、HTTP头等,可能导致安全隐患。
- 过时版本:使用过时的Apache版本,未及时更新,导致已知漏洞被利用。
三、总结RCE漏洞的原理和利用条件及解决方案
原理
RCE漏洞允许攻击者在受害者的系统上执行任意代码。攻击者通过利用应用程序的缺陷,能够将恶意代码注入到系统中并执行,通常是通过网络请求或输入数据的方式。
利用条件
- 输入验证缺失:应用程序未对用户输入进行充分的验证和过滤,导致恶意代码得以注入。
- 不安全的反序列化:应用程序在反序列化用户输入时未进行安全检查,攻击者可以构造恶意对象。
- 系统命令执行:应用程序允许用户输入并直接执行系统命令,未对输入进行严格限制。
- 配置错误:服务器或应用程序的配置不当,导致攻击者能够访问敏感功能或接口。
- 已知漏洞:使用的库或框架存在已知的RCE漏洞,未及时更新。
解决方案
-
输入验证和过滤:
对所有用户输入进行严格的验证和过滤,确保只接受预期格式的数据。
使用白名单策略,限制可接受的输入类型。 -
安全编码实践:
避免使用不安全的函数和方法,特别是在处理用户输入时。
使用安全的反序列化库,确保反序列化过程的安全性。 -
最小权限原则:
运行应用程序时,使用最小权限的用户账户,限制其对系统资源的访问。 -
定期更新和补丁管理:
定期检查和更新应用程序及其依赖库,及时修复已知漏洞。 -
安全审计和测试:
定期进行安全审计和渗透测试,发现潜在的RCE漏洞并进行修复。 -
使用Web应用防火墙(WAF):
部署WAF以监控和过滤恶意请求,提供额外的安全层。