9.4任务
- 在vps安装docker和docker-compose
- 上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因
- 总结RCE漏洞的原理和利用条件及解决方案
网安实习日志8
一、于vps安装docker和docker-compose
docker -v
docker-compose -v
二、上课涉及的vulhub中的漏洞,全部复现(同时说明漏洞成因)
1、弱口令漏洞
成因: 由于管理员未修改后台的默认密码或者设置的密码过于简单,从而攻击者可以通过暴力破解或字典攻击的方式轻松攻击获取密码,然后登录获得权限,进而控制我们的服务器。
复现:
- 首先使用docker搭建环境访问
- 使用弱口令即可登陆成功
2、任意文件读取漏洞
成因: 处理用户的输入时,没有对输入的内容进行必要的限制和过滤,导致攻击者可以构造特殊的内容,来读取服务器上任意文件的内容。
复现:
- 若存在任意文件读取漏洞,我们未知密码的前提下,可以通关文件读取获取加密的密码文件,使用url来获取密码文件
3、换行解析漏洞
成因: 程序在解析php文件的时候,如果文件名最后有一个换行符x0A,会将其当成php解析,但是在上传文件的时候可以成功绕过黑名单。
复现:
- 使用docker搭建环境来访问
- 准备木马,启动burp拦截
- 上传木马文件的时候,burpsuite会抓取到我们提交的数据
- 然后在文件名末尾处添加空格,修改内部文件的配置
- 最后访问一句话木马,复现成功
4、tomcat弱口令漏洞
成因: tomcat安装以后,在后台通常会生成一个默认的用户名和密码,如果我们管理者没有在安装以后修改这些默认密码,那么攻击者就可以利用这些默认密码来登录成功。
复现:
- 使用docker搭建环境访问
- 打开manager app,使用弱口令 username:tomcat password:tomcat,就可以成功登录。
- 成功进入登陆界面
三、总结RCE漏洞的原理和利用条件及解决方案
1、RCE漏洞
RCE(远程代码执行漏洞),是可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口,比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上。
2、RCE原理
应用有时需要调用一些执行系统命令的函数,如 PHP 中的 system、exec、shell_exec、passthru、popen、proc_popen 等,当用户能控制这些函数的参数,并且开发人员对这个参数没有严格的过滤时就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
3、RCE的利用条件
通常设计以下几个步骤:
- 寻找目标:攻击者首先需要找到存在RCE漏洞的目标系统或应用。这可能通过扫描公开的网络资产、利用已知的漏洞信息、或通过社会工程手段获得访问权限。
- 探测漏洞:攻击者使用特定的技术或工具来探测目标系统或应用是否存在RCE漏洞。这可能涉及到发送特定的请求、构造特定的输入,观察目标系统的响应,以判断是否存在可利用的漏洞。
- 注入代码:一旦确认存在RCE漏洞,攻击者会尝试注入恶意代码。这可能涉及到在用户输入中夹带恶意代码、利用现有功能提交恶意请求等手段。如果目标系统未对用户输入进行适当的安全验证和处理,攻击者的恶意代码将被执行。
- 控制目标:一旦恶意代码被执行,攻击者通常能够获得对目标系统的完全控制权。他们可以执行任意命令、访问敏感数据、安装后门、甚至进一步控制受影响的其他系统。
4、解决方案
防御手段:
- 尽量不要使用命令执行函数
- 不要让用户控制参数
- 执行前做好检测和过滤