目录
2. 上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因
1.在vps安装docker和docker-compose
docker
docker-compose
2. 上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因
2.1 tomcat弱口令/后台文件上传getshell
已经提前在docker中部署好了tomcat镜像,现在在docker中启动该镜像,查看映射到的端口
通过ip端口进行访问
在登陆中存在弱口令
成功登录
后台文件上传getshell
将上面的jsp木马写在文档里,通过jar -cvf shell.war x.jsp
生成shell.war
,上传文件
上传成功后通过中国蚁剑进行连接
连接成功
漏洞成因
- 网站没有对存储目录进行权限限制。让其不能使用系统的高级权限的函数。
- 未对war文件进行检测,检测是否存在危险的函数。
2.2 weblogic弱口令/任意文件读取
weblogic弱口令
尝试直接登录,发现404NOT FIND
在网址后添加console进入后台
尝试弱口令进行登录
发现存在弱口令
账号:weblogic
密码:Oracle@123
成功登录
任意文件读取
访问http://{IP地址}:7001/hello/file.jsp?path=/etc/passwd可成功读取passwd文件
后台上传webshell
获取到管理员密码后,登录后台。点击左侧的部署,可见一个应用列表,点击安装,选择“上载文件”。
上传文件shell.war
生成方式:
jar -cvf shell.war x.jsp
蚁剑连接
漏洞成因
- 管理员使用了弱口令
- 存在文件读取后门
- 管理员为对重要文件设置访问权限以及未修改默认的存储位置
2.3 apache换行解析
apache换行解析
查看index.php文件内容
上传正常的.php文件会被黑名单拦截
抓包修改,在.php后面插入一个\x0A
成功上传
访问上传文件
漏洞成因
网站未对用户提供的数据进行过滤
3. 总结RCE漏洞的原理和利用条件及解决方案
3.1 RCE漏洞基本原理
RCE漏洞的核心原理是攻击者能够在目标系统上执行未经授权的代码。这通常是由于系统或应用程序未能正确处理输入数据或代码,从而允许恶意代码在目标计算机上运行。
以下是RCE漏洞的基本机制:
输入处理缺陷:系统或应用程序处理用户输入时,没有进行适当的验证和过滤。这可能导致攻击者将恶意代码注入到系统中并执行。
执行环境漏洞:应用程序在执行过程中,可能错误地处理或解析传入的数据,导致恶意代码被执行。例如,在处理动态脚本或配置时,可能存在安全漏洞。
不安全的反序列化:系统未能安全地反序列化数据,使得恶意构造的序列化数据能够被执行。
3.2 RCE漏洞利用条件
要利用RCE(远程代码执行)漏洞,通常需要满足以下条件:
漏洞存在:应用程序或系统中存在可以被远程利用的代码执行漏洞。
输入点:攻击者能够提供输入到受影响的应用程序或系统,例如通过表单、URL参数或API请求。
权限:攻击者需要在受害系统上具备足够的权限来执行恶意代码,或漏洞本身允许在高权限下运行。
环境:系统或应用的配置应支持执行外部代码,如启用的脚本引擎或不安全的默认设置。
3.3 RCE漏洞解决方案
1. 输入验证和消毒
- 严格验证输入:确保对所有用户输入进行严格的验证,包括表单字段、URL参数、HTTP头部等。使用白名单策略,限制允许的输入格式和内容。
- 输入消毒:对用户输入进行消毒,去除潜在的恶意代码。例如,避免直接将用户输入用于生成系统命令或代码。
2. 代码和命令注入防护
- 参数化查询:对于SQL注入等攻击,使用参数化查询(预处理语句)来避免恶意代码注入。
- 避免动态执行:尽量避免使用动态代码生成和执行功能,如
eval
、exec
、system
等。如果必须使用,确保输入数据经过严格审查和消毒。 - 命令行安全:在构建和执行系统命令时,避免直接拼接用户输入,使用安全的API或库来构建命令。
3. 安全配置
- 最小权限原则:应用程序和服务应以最低权限运行。限制应用程序对系统资源和文件的访问权限,以减少潜在的攻击面。
- 禁用不必要的功能:禁用应用程序和系统中不必要的功能和服务,尤其是那些可能引入安全风险的功能(如不必要的脚本引擎或反序列化功能)。