暑假的时候就想用dirseash来着,可是新版本的kali没有自带了,我就尝试上网安装,但是要求的配置一直下载不下来,马上要去打一个线下赛,工具又要打包收集好,正好又遇到了一道ctf需要用到这个工具
好了好了言归正传
踏上路途吧
暑假的时候就想用dirseash来着,可是新版本的kali没有自带了,我就尝试上网安装,但是要求的配置一直下载不下来,马上要去打一个线下赛,工具又要打包收集好,正好又遇到了一道ctf需要用到这个工具
好了好了言归正传
本文我会先将一些PHP基础进行阐述,然后再讲解php反序列化漏洞如何应用
面向对象(Object-Oriented,简称 OO)是一种编程思想和方法,它将程序中的数据和操作数据的方法封装在一起,形成”对象”,并通过对象之间的交互和消息传递来完成程序的功能。面向对象编程强调数据的封装、继承、多态和动态绑定等特性,使得程序具有更好的可扩展性、可维护性和可重用性。
在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
在现实世界里我们所面对的事情都是对象,如计算机、电视机、自行车等。
1 | <?php |
libxml_disable_entity_loader(false);
这一行将禁用libxml实体加载器。这是为了防止XML实体注入攻击,确保不会加载外部实体。设置为false
表示实体加载器没有被禁用。$xmlfile = file_get_contents('php://input');
这一行从php://input
读取HTTP请求的主体部分(通常是POST请求的数据),并将其存储在变量$xmlfile
中。if(isset($xmlfile)){ ... }
这一行检查变量$xmlfile
是否存在。如果存在,表示成功获取了XML数据。$dom = new DOMDocument();
这一行创建了一个新的DOMDocument对象,用于解析XML。$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
这一行使用loadXML
方法加载XML数据到DOMDocument对象中。选项LIBXML_NOENT
和LIBXML_DTDLOAD
用于指定加载XML时的一些行为。LIBXML_NOENT
用于禁用实体扩展,以防止XXE(XML外部实体)攻击,而LIBXML_DTDLOAD
用于允许加载DTD(文档类型定义)。$creds = simplexml_import_dom($dom);
这一行将DOMDocument对象转换为SimpleXMLElement对象,以便更容易地访问XML数据。$ctfshow = $creds->ctfshow;
这一行尝试从XML数据中提取名为”ctfshow”的元素的值,并将其存储在变量$ctfshow
中。XML external entity injection (also known as XXE)。奇怪,XML External Entity 为什么不叫XEE?
XML 外部实体注入(也称为 XXE)是一种 Web 安全漏洞,允许攻击者干扰应用程序对 XML 数据的处理。它通常允许攻击者查看应用程序服务器文件系统上的文件,并与应用程序本身可以访问的任何后端或外部系统进行交互。
在某些情况下,攻击者可以利用 XXE 漏洞联合执行服务器端请求伪造(SSRF) 攻击,从而提高 XXE 攻击等级以破坏底层服务器或其他后端基础设施。
XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害。
XXE漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。
1 | docker pull centos:7 |
1 | docker run -d --name centos7 --privileged=true -p 10022:22 -p 10080:80 -h testhost -v /home/fd/container/centos7:/home/centos7 centos:7 /usr/sbin/init |
参数说明:
1 | -d 后台运行方式 |