RCE漏洞的原理
RCE漏洞的原理主要是攻击者通过Web端或客户端提交恶意构造的执行命令,由于服务器端没有对这些执行函数或接口进行严格的过滤或存在逻辑漏洞,导致攻击者能够在没有指定绝对路径或权限限制的情况下执行系统命令或代码,从而控制后台系统。具体来说,当开发人员在设计系统时,可能会因为功能需求而允许用户输入作为命令或代码的一部分进行执行,如果没有对这些输入进行严格的验证和过滤,就可能导致RCE漏洞的产生。
RCE漏洞的利用条件
1.存在可执行命令的函数或接口:系统中存在能够执行系统命令的函数或接口,如PHP中的system(), exec(), shell_exec(), passthru(), popen(), proc_open()等。
2.输入可控:用户能够控制这些函数或接口的输入参数,即攻击者能够构造恶意的输入。
3.过滤不严:系统对这些输入没有进行严格的过滤或验证,或者过滤机制存在缺陷,使得攻击者能够绕过过滤机制。
RCE漏洞的解决方案
1.严格过滤输入:对所有用户输入进行严格的过滤和验证,确保输入的内容符合预期和安全要求。可以实施白名单策略,只允许特定的、安全的输入通过。
2.禁用危险函数:在配置文件中禁用那些可能导致RCE漏洞的函数,如PHP中的disable_functions配置选项可以禁止system(), exec(), shell_exec(), passthru(), popen(), proc_open()等函数的执行。
3.使用安全的编程实践:在开发过程中,遵循安全的编程实践,如避免将用户输入直接用于命令执行或代码执行,使用安全的API和库来处理用户输入等。
4.加强访问控制:实施严格的访问控制策略,确保只有授权的用户才能访问和执行特定的操作。
5.定期更新和打补丁:定期更新系统和应用程序,安装最新的安全补丁,以修复已知的安全漏洞。
6.使用安全扫描工具:使用自动化的安全扫描工具来定期扫描系统,发现潜在的安全漏洞并及时修复。
7.安全配置和审计:对系统进行安全配置,确保所有安全设置都已正确应用。同时,定期进行安全审计,检查系统是否存在安全隐患。
vps安装docker和docker-compose
VPS安装Docker
使用root用户登录Linux并更新apt
apt update
并且需要下载安装脚本curl -fsSL https://get.docker.com -o get-docker.sh
安装过后运行脚本sh get-docker.sh
vps安装docker-compose
安装docker-compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
给docker-compose赋予运行权限
chmod +x /usr/local/bin/docker-compose
vulhub中的漏洞
1.Tomcat弱口令
开启靶机
弱口令进入
使用哥斯拉生成一个jsp木马文件
生成的文件压缩完成之后进行更改后缀,zip—> war,进行上传
2.Weblogic弱口令
查看是否搭建成功
登录后台页面,点击base_domain的配置,在 ‘高级’ 中勾选 ‘启用 Web 服务测试页’ 选项,然后保存配置。
访问http://172.17.0.1:7001/ws_utc/config.do,设置Work Home Dir为
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
然后点击 ‘安全’ -> ‘添加’ ,然后上传冰蝎
抓包
3.Apache换行解析
开启靶机,运行漏洞环境
root@Fly:~/vulhub/httpd/CVE-2017-15715# docker-compose up -d
root@Fly:~/vulhub/httpd/CVE-2017-15715# docker-compose build
启动后访问:http://192.168.111.146:8080
上传一个木马文件2.php
上传失败
修改1.php并不再拦截\x0A\x0D\x0A\x0A可以看到上传成功。