靶机实战XXE

0x01:环境搭建

靶机下载地址:XXE LAB:1

选择箭头指示的下载链接:

下载的是一个zip压缩文件,同学们解压到自己想要放置的文件夹,这里建议大家创建一个labs文件夹,把所有的靶机ISO文件,或者是ZIP压缩包,全都放在一起,方便统一管理操作。

解压下来以后,将xxe.ocf文件拖拽到VM中的虚拟机栏位

然后填写名称与虚拟机存放位置就好了

0x02:信息收集

        三板斧

                一、ip扫描

                老规矩,先找找看靶机的ip地址是什么,不然连入口都进不去,还打个锤子。

很明显,这个192.168.183.137就是了

首页:

二、端口扫描

如图,80/tcp 5355/tcp开放

三、目录扫描

居然只有个robots?去瞅瞅

原来如此,那么为什么dirsearch没有扫出来呢?

问得好,因为他默认的字典里没有xxe这个字段

是个登录界面

随便先写个用户名,密码看看情况

好好好,不让进是吧,burpsuite启动!!!

0x03:漏洞利用

        三用XXE

               a、第一次

咱们抓他的POST包,看看具体是个什么情况。

如上图,看到xml了,是不是可以尝试写一些恶意代码,来试试有没有xxe漏洞了呢?

我们试着构建一段小烧代码:

<!DOCTYPE foo [<!ENTITY afk SYSTEM "file:///etc/hosts">]>
<b>&afk;</b>

首先,把抓到的这个包,发到repeater模块,然后把小烧代码插到如图所示框选位置,点击send:

可以看到右边回显出了passwd,说明这里不仅存在xxe漏洞,而且还是可回显的。

root肯定是管理员,但是这个r00t是个什么玩意???

不懂,再去刚刚找到的admin.php瞅瞅。(注:这里要去的路径是/xxe/admin.php)

哟,是后台登录界面。再随便写一个看看呢

老规矩,再随便填一个,然后抓包

                b、第二次

嘶~源代码也没有什么可疑内容,php代码块被过滤了。

再去利用刚刚的xxe漏洞,看看admin.php源码。

再构建一个小烧代码:

<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY afk SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php">
]>

还是将小烧代码,插到刚才的位置。

可以看到右边是一堆经过base64编码后的代码。去解码看一看

可以看到,用户名是administhebest,密码是md5加密过的,解密后是:admin@123

回去登录

点进来后显示404

之前查到的说是/xxe/*,这里意思就是根目录,和/xxe/admin同理,要去/xxe/flagmeout.php才可以

得到神秘代码:JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5

这个是base32加密的,去解一下看看

继续base64解

找到了flag的藏身之处/etc/.flag.php

哟,还是找不到

再去抓包

                c、第三次

再再去xxe漏洞哪里找!

继续base64解码

得到了一坨神秘代码,查询后得知是PHP 中的 eval() 函数的典型用法。

在本地搭建apache+php服务(开启小皮面板,打开apache就可以了),把这坨神秘代码放入flag.php文件中,然后把该文件放到localhost下(路径一般是X:\PhpStudy\phpstudy_pro\WWW),然后浏览器打开localhost,尝试访问falg.php看看。

 以上就是本次靶机实战的全部内容,希望能对您有一点点的帮助。

### 靶机实战练习的重要性 网络安全领域中,靶机实战练习是提升攻防技能的重要手段。通过实际操作,学习者能够深入理解各种攻击技术和防御策略,从而提高应对真实网络攻击的能力[^1]。 ### 靶机环境搭建指南 为了有效地进行靶机实战练习,首先需要搭建一个合适的实验环境。这通常包括以下几个步骤: - **硬件资源**:至少需要两台计算机,一台作为攻击机,另一台作为靶机。 - **软件资源**:选择合适的操作系统(如Windows、Linux)、虚拟化软件(如VMware Workstation、VirtualBox)以及安全工具(如Wireshark、Metasploit)。 - **网络配置**:确保攻击机与靶机之间可以互相通信,并且配置好网络隔离,以避免测试行为影响到其他网络设备[^4]。 ### 攻防演练实践 攻防演练是一种模拟真实网络攻击的活动,旨在检验防守方的安全防护和应急处置能力。这种演练通常分为四个阶段: - **备战阶段**:通过风险评估手段,对内外网信息化资产风险暴露面进行全面评估,制定合理可行的安全整改和建设方案。 - **临战阶段**:制定应急演练预案,有序组织开展内部红蓝对抗、钓鱼攻击等专项演练工作。 - **实战阶段**:依托安全保障中台,构建云地一体化联防联控安全保障体系,利用情报协同联动机制,持续有效地进行威胁监控、分析研判、应急响应、溯源反制等工作。 - **总结阶段**:对攻防演练工作进行经验总结和复盘,梳理总结报告,对演练中发现的问题进行优化改进和闭环处理[^5]。 ### 学习资源推荐 对于网络安全学习者来说,有许多资源可以帮助提升实战技能。例如,可以通过实操快速提升实战技能的网络安全靶场,这类平台基于平行仿真技术的应用,集演、训、学、测为一体,提供场景化、实战化、体系化的实训环境。此外,还可以参考从网络安全入门到攻防实战的指南,这些指南通常会涵盖操作系统基础、网络协议与架构、常见漏洞原理等内容,帮助学习者逐步掌握网络安全的核心知识[^3]。 ### 示例代码:使用Python进行简单的网络扫描 下面是一个使用Python进行简单网络扫描的示例代码,可以帮助学习者了解如何使用编程语言进行基本的网络安全测试。 ```python import socket def scan_ports(ip, ports): open_ports = [] for port in ports: try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(1) result = sock.connect_ex((ip, port)) if result == 0: open_ports.append(port) sock.close() except Exception as e: print(f"Error scanning port {port}: {e}") return open_ports if __name__ == "__main__": target_ip = "192.168.1.1" port_range = range(1, 1025) open_ports = scan_ports(target_ip, port_range) print(f"Open ports on {target_ip}: {open_ports}") ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值