一、在vps安装docker和docker-compose
二、上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因
(一)、Tomcat弱口令
在vulhub靶场启动Tomcat,并在浏览器中访问
登录
上传shell.war文件
上传成功后可以看见变化
(二)、Weblogic弱口令
在vulhub靶场启动weblogic
用弱口令weblogic:Oracle@123 ,登录
对http://120.26.231.217:7001/hello/file.jsp?path=security/SerializedSystemIni.dat
抓包,读取到的那一串乱码,是密钥
对http://120.26.231.217:7001/hello/file.jsp?path=config/config.xml抓包,在响应信息中找到密钥
上传文件shell.war
(三)、Apache HTTPD 换行解析漏洞
在vulhub靶场启动Apache HTTPD
在本机访问
上传一句话木马
在文件名后加x0a
成功上传
三、总结RCE漏洞的原理和利用条件及解决方案
(一)、漏洞原理
1.不安全的输入
用户在输入或者在处理敏感操作时未能进行严格的权限控制。
2.危险函数的使用
应用程序中使用了不安全的函数或方法,如eval(), system(), exec(), shell_exec(), popen(), proc_open(), pcntl_exec()等,这些函数能够执行系统命令或解释执行代码。
3.设计缺陷
应用程序设计本身存在缺陷,例如提供了宽松的命令执行接口或文件上传功能,而且没有对这些进行安全限制和过滤。
4. 反序列化漏洞
许多RCE漏洞源于第三方软件或者系统应用中的已知漏洞,这些应用在处理反序列化数据时可能会存在安全问题。
(二)、利用条件
1.存在的漏洞,有的应用程序中会有RCE漏洞
2.不安全的函数,有的应用程序中存在能够执行系统命令或解释执行代码的函数,如果应用程序不当地使用了这些函数或方法,并且没有被限制,就可能导致RCE漏洞的利用。
3.安全措施不完善
(三)、解决方案
1.对用户输入的数据进行严格验证和过滤,防止恶意代码的注入、防止攻击者输入插入恶意代码。
2.避免使用危险函数。
3.及时更新应用软件,安装补丁。
4. 采用隔离技术来限制代码执行的环境。