xxe-lab靶场安装和简单php代码审计

news2025/1/15 13:09:54

今天继续给大家介绍渗透测试相关知识,本文主要内容是xxe-lab靶场安装和简单php代码审计。

一、xxe-lab靶场简介

xxe-lab是一个使用java、python、php和C#四种编程语言开发的存在xxe漏洞的web小型靶场。利用该靶场可以简单研究xxe漏洞,并且对于这四种编程语言的xml解析器差异进行研究。
xxe-lab靶场代码托管在GitHub平台上,URL为:https://github.com/c0ny1/xxe-lab。页面如下所示:
在这里插入图片描述

二、php xxe-lab靶场安装

我们在GitHub上下载完成xxe-lab后,接下来直接将该靶场的php_xxe部分复制到本地搭建好的PHP环境下,就可以进行研究了。进入该目录后效果如下所示:
在这里插入图片描述

三、xxe-lab靶场PHP代码审计

接下来,我们简单来看一下xxe-lab靶场的靶场逻辑。
打开该目录下默认的index.html文件后,查看该文件源代码,可以看到在Login按钮下会触发javascript脚本的doLogin()函数,如下所示:
在这里插入图片描述
而JavaScript脚本的doLogin()函数如下所示:
在这里插入图片描述
从上图中可以看出,JavaScirpt脚本会将用户输入的username和password转化成xml格式的数据,并且利用ajax的方法提交,提交时xml格式的数据被当作Post数据包的内容进行提交。
来到ajax的目标doLogin.php文件,该文件源码如下所示:
在这里插入图片描述
在该PHP文件中,主要是接收POST请求的内容,并将其转化为XML对象,然后提取XML对象中的username和password字段。然后比对username和password是否相等。注意,在这个靶场中if else语句逻辑似乎出现了错误,相等时result返回的结果应该是0,而不相等时result返回的结果应该是1。
在上述代码中,关键函数如下:
1、libxml_disable_entity_loader(False)
这段代码意思是设置允许PHP加载外部实体,这也是本靶场的漏洞产生主要原因。在生产环境下,需要将这里的False改为True,即可避免产生XXE漏洞。
2、loadXML()
该函数可以将一个输入的字符串转化为DOMDocument对象。
3、simplexml_import_dom
该函数可以把DOM节点转化为SimpleXMLElement对象。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win10微软输入法打不出汉字?

在Win10系统中自带的微软输入法无需再安装其他拼音输入法就可以轻松输入汉字,非常方便,但是有的用户却遇到了Win10专业版自带的微软输入法打不出汉字的问题,这要如何解决呢?有需要的用户就来一起看看吧。 1、点击系统左下侧的wind…

Allegro如何更改铜皮的网络操作指导

Allegro如何更改铜皮的网络操作指导 在做PCB设计的时候需要更改铜皮的网络,Allegro上可以快速的更改铜皮的网络。如下图,需要给铜皮赋上网络 具体操作如下 选择selcet shape命令选中铜皮

会计毕业生的转行之路:坚持无畏,我是我自己的英雄

有时候,我们面对困境,总会犹豫,不敢迈出一步。 但当我们真的鼓起勇气打破困局时,才会发现出路就在眼前,原来只要不放弃,一切皆有可能。 初遇:会计生大四想转行 我是一名来自内蒙古的少数民族女生…

还有1个月,乘用车搭载首超5百万辆!L2/L2+前装交付一路狂奔

高工智能汽车研究院监测数据显示,2022年1-11月中国市场(不含进出口)乘用车交付上险为1745.95万辆,同比上年同期下滑4.01%,降幅和1-10月数据相比,继续放大,显示市场回暖低于预期。 不过&#xff…

单商户商城系统功能拆解52—财务概况

单商户商城系统,也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法,例如拼团,秒杀,砍价,包邮…

连接稳定性最好的蓝牙耳机有哪些?盘点2023年值得入手的蓝牙耳机

2022年已准备过完,马上来临2023新的一年,大家入手了蓝牙耳机吗?要我说,一款好用的蓝牙耳机不仅只有音质、蓝牙技术、配置性能等,也不能缺少佩戴体验,要想长时间佩戴耳机听歌通话、玩游戏和运动这些&#xf…

白话说Java虚拟机原理系列【第四章】:内存结构之方法区详解

文章目录执行引擎内存结构:运行时数据区方法区(永久代PermGen)方法区的设计初衷?方法区存的什么内容?方法区的异常:运行时常量池:方发表:这里我们详细讲解前导说明: 本文基于《深入理解Java虚拟…

斩获数亿元B轮融资,这家Tier 1抢跑「L2/L2+」主战场

伴随着汽车智能化演进加速,L2/L2+辅助驾驶功能已经成为各家车企抢夺市场的“要塞”。 据高工智能汽车研究院监测数据显示,今年1-9月前装标配搭载L2级辅助驾驶搭载量为395.19万辆,同比增长69.53%,前装搭载率为27.69%。…

倒角算法推导

推导原理基本很简单: 已知AB, BC两条线段,且交于B点,求倒角半径为 L,AB,BC的倒角 以最短边(假定为AB)长 LAB, 在BC中,以B为起点,找出与LAB同长度…

FOC算法与SVPWM技术

最近看到了FOC这个东西,感觉很有意思,想着以后用这个算法做个东西,目前的想法是用开源的ODrive方案,自己做一个有感单电机驱动的板子,并且加入一点自己的东西,但是这不是目前工作的重点,所以就先…

基于Vue+Element实现的电商后台管理系统的前端项目,主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理

前言 该项目为前后端分离项目的前端部分, 项目介绍 mall-admin-web是一个电商后台管理系统的前端项目,基于VueElement实现。主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。 完整…

MySQL面试常问问题(锁 + 事务) —— 赶快收藏

目录 1.MySQL中有哪几种锁,列举一下? 2.说说InnoDB里的行锁实现? 3.意向锁是什么知道吗? 4.MySQL的乐观锁和悲观锁了解吗? 5.MySQL 遇到过死锁问题吗,你是如何解决的? 6.MySQL 事务的四大特性说一下…

ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了

作者:符****尧、彭昊、Tushar Khot、郭志江等**** 符尧(yao.fued.ac.uk),爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学。他与彭昊、Tushar Khot在艾伦人工智能研究院 (Allen Institute for AI) 共…

jQuery 插件开发

文章目录jQuery 插件开发插件概述常用插件文本溢出:dotdotdot.js单行文本省略多行文本省略延迟加载:lazyload.js插件编写方法类插件函数类插件jQuery 插件开发 插件概述 jQuery插件可以理解成是使用jQuery来封装的一个功能或特效。 一般来说&#xff…

【我亲身经历的2022年软件质量工作】

软件危机(softwarecrisis),20世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模…

如何避免编程从入门到放弃?

写代码不是什么太需要创造力的劳动,现在的代码从业者本质上与工业时代的纺织工人没什么差异。大多数人写代码也并不是真的有兴趣,只不过金钱的诱惑使然,这没什么不好,也十分正确。 但对于零基础转行编程的人来说,坚持下…

关于居住办公人口的统计技术解决方案

在数字化转型的浪潮下,大数据产业作为城市数字化转型的重要助力,带来了城市管理手段、模式、理念的深刻变革与创新。为了更好地了解国家城镇的职住分布结构,帮助城市管理部门制定更加合理的规划策略,为城市商业产业提供有效的规划…

面向对象的软件工程

面向对象的软件工程1 面向对象的演化1.1 生活中复杂系统的特点1.2 软件系统的复杂性1.2.1 复杂性的四个方面1.2.1.1 问题域的复杂性1.2.1.2 管理开发的困难性1.2.1.3 软件中的灵活性1.2.1.4 描述离散系统行为1.2.2 复杂系统的五个属性1.2.2.1 层次结构1.2.2.1.1 对象结构1.2.2.…

更改Docker容器网络地址

查看docker 网络列表 查看网络详情 查看容器信息,容器的ip docker inspect 容器id1.创建自定义网络(默认是桥接模式) 方式1: docker network create 网络名称方式2:指定IP和网关 docker network create --subnet17…

Django中继承父模版时子模板未继承父模板中的动态数据

解决办法: 自己定义一个 context_processors.py 其中的内容根据自己需求来: #__author:joy #date: def index(request):meve_data[首页,产品与服务,市场发展,经典案例,解决方案,联系我们]return {"meve_data":meve_data} 值得注意的是 re…