数据类型是具有相同特性的一组数据的统称。PHP早就提供了丰富的数据类型,PHP 5中又有更多补充。本节将介绍这些数据类型,可以分为3类:标量数据类型、复合数据类型和特殊数据类型。
XXE全称XML External Entity Injection,也就是XML外部实体注入攻击,是对非安全的外部实体数据进行处理时引发的安全问题。要想搞懂XXE,肯定要先了解XML语法规则和外部实体的定义及调用形式。
本文详细介绍DTD,包括其对元素的定义,属性的定义,以及实体的定义。
要想清楚XXE漏洞,首先要了解XML XML 可扩展标记语言(EXtensible Markup Language)。
XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
& (和号)成为 & ” (双引号)成为 “ ‘ (单引号)成为 ‘ < (小于)成为 < (大于)成为
继上一篇《渗透测试之黑白无常》之后,当时的目标中还有个WordPress网站,虽然为一批目标但是运行环境却不太一样,同上一篇文章一样本文使用本地搭建环境来复现,如有觉得不合理的地方,可能是本地复现的时候未完全还原真实环境,主要是记录当时在做这个渗透测试的思路以及绕过安全策略的方法。
在XSS的时候,有时候有的过滤器很变态,会过滤很多特殊符号和关键词,比如&、(、)、#、'、",特别是&和括号,少了的话payload很难构造出来。
原文链接:https://zhuanlan.zhihu.com/p/47353814
在PHP网页程序实际应用中,为了应对不断扫描的SQL漏洞扫描工具,我们应该对网页传递的参数进行一系列的处理。
DTD:Document Type Definition 即文档类型定义,用来为XML文档定义语义约束。可以嵌入在XML文档中(内部声明),也可以独立的放在一个文件中(外部引用),由于其支持的数据类型有限,无法对元素或属性的内容进行详细规范,在可读性和可扩展性方面也比不上XML Schema。
XSS攻击全称跨站脚本攻击(Cross Site Scripting),是为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供其他用户使用的页面中。
写这篇博文起源来自于一次网络安全实验课,在实验虚拟环境里有一个xss挑战,估计是搬别人的xss挑战进来,我觉得挺有意思,就记录一下。有些关卡不能再虚拟环境实践,我在自己物理机上找到那个xss挑战平台进行实现。
0x00 背景 近期看到OWASP TOP 10 2017 版中添加了XXE的内容便对XXE的一些知识进行梳理和总结,XXE可以使用例如http,file等协议,所以可以利用支持的协议进行内网探测和内网入侵,这部分的内容后续在SSRF中补充。 要点:libxml2.9.1及以后,默认不解析外部实体。测试的时候window下使用的是php5.2(libxml Version 2.7.7 ), php5.3(libxml Version 2.7.8)。Linux中需要将libxml低于libxml2.9.1
XXE(XML External Entity Injection)即XML外部实体注入,攻击者通过向服务器注入指定的XML实体内容,从而让服务器按照指定的配置进行执行,导致问题。也就是说服务端接收和解析了来自用户端的XML数据,而又没有做严格的安全控制,从而导致XML外部实体注入。
xml是可扩展标记语言(EXtensible Markup Language)的缩写。它与HTML类似同为w3c推荐标准,但是比HTML要严谨。因为它所有的标签一定要闭合。 同时它也可以用自己定义的标签,但是XML是不作为的标记语言,不像HTML,XML只是将数据结构化存储与传输。
文章首发于跳跳糖社区https://tttang.com/archive/1716/
提示:如需把特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。
0x00 introduction Pentester Lab 是渗透测试学习实战平台,在里面提供各种漏洞实验的虚拟机镜像文件,让网络安全爱好者和黑阔进行实战式的训练,可以使其更加深刻地且透彻理解“漏
跨站脚本(cross site script)为了避免与样式css混淆,所以简称为XSS。
当我们写入一个语句的时候,可以发现被闭合掉了,因此在这里可以尝试先行闭合搜索框之后再弹出xss
strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。防注入
例子:<!ELEMENT 元素名 PCDATA> <元素名>(中间这一部分也是可以被解析的)</元素名>
介绍 XXE 之前,我先来说一下普通的 XML 注入,这个的利用面比较狭窄,如果有的话应该也是逻辑漏洞
在PHP 中有许多方便的函数可以帮助你免于类似于 SQL注入,XSS攻击。现在让我们来看一下这些能够给你的项目增加安全性的函数吧。但是,请注意,这里只是一些常用的函数的列表,也许他们并不全面,但是我相信他们都是对你的项目是非常有帮助的。
从app/home/index.php开始审计,前面没什么可说的,但是注意这里,虽然它是判断不是PC登陆时候执行,但是我们可以看到它调用的查询方法,感觉很熟悉,比较像think里面定义的查询方法,我们回想起上一篇审计的时候,审计到的过滤机制,我们全局搜索一下where(,一个一个去查看,看看是否有where条件为两个参数,或者int类型。
大家好,我们是红日安全-代码审计小组。最近我们小组正在做一个PHP代码审计的项目,供大家学习交流,我们给这个项目起了一个名字叫 PHP-Audit-Labs 。现在大家所看到的系列文章,属于项目 第一阶段 的内容,本阶段的内容题目均来自 PHP SECURITY CALENDAR 2017 。对于每一道题目,我们均给出对应的分析,并结合实际CMS进行解说。在文章的最后,我们还会留一道CTF题目,供大家练习,希望大家喜欢。下面是 第2篇 代码审计文章:
大家好,我们是红日安全-代码审计小组。最近我们小组正在做一个PHP代码审计的项目,供大家学习交流,我们给这个项目起了一个名字叫 PHP-Audit-Labs 。现在大家所看到的系列文章,属于项目 第一阶段 的内容,本阶段的内容题目均来自 PHP SECURITY CALENDAR 2017 。对于每一道题目,我们均给出对应的分析,并结合实际CMS进行解说。在文章的最后,我们还会留一道CTF题目,供大家练习,希望大家喜欢。下面是 第2篇代码审计文章:
其实 xxe 也是一类注入漏洞,英文全名即 Xml External Entity Injection, 即我们所说的 xml 外部实体注入攻击。
从本文开始,打算写一个系列文章。其主要目的是从xss-labs靶场题解开始来介绍一下XSS攻击。
WordPress 有个自带函数 wptexturize,它会将纯文本中的直引号转换为智能引号(弯曲的引号),比如下面这句话:
-----------------------------------------------------------------------------------
实体引用,在标签属性,以及对应的位置值可能会出现<>符号,但是这些符号在对应的XML中都是有特殊含义的,这时候我们必须使用对应html的实体对应的表示,比如<对应的实体就是<,>符号对应的实体就是>
它是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,一般是注入一段javascript脚本。在测试过程中,我们一般是使用:
一、前言 过去我们总通过图片来美化站点的LOGO、标题、图标等,而现在我们可以通过@font-face获取另一种更灵活的美化方式。 二、看看例子 /* 定义 */ @font-face { font-family: 'MicrosoftYaHei'; src: url('MicrosoftYaHei.eot'); /* IE9 Compat Modes */ src:
ignore_user_abort() ,可以实现当客户端关闭后仍然可以执行PHP代码,可保持PHP进程一直在执行,可实现所谓的计划任务功能与持续进程,只需要开启执行脚本,除非 apache等服务器重启或有脚本有输出,该PHP脚本将一直处于执行的状态;
0x00 背景 本周,斗哥分析了下zzcms8.2的源码,发现蛮多问题的,觉得这个源码适合萌新们练手或入坑PHP的代码审计。今天决定发出一些发现的问题,当然这个源码还有很多问题,本篇仅对部分漏洞进行分析,至于如何GetShell我会在下周分享出我的方法。期待与师傅们的交流讨论。 0x01 审计过程 XSS相关问题 0x00 相关环境 源码信息:ZZCMS 8.2 问题文件: \zzcms\zzcms8.2\install\step_6.php 漏洞类型:反射型XSS 站点地址:http://www.z
作者 0xExploit 0×00 引言 很多不了解html、js编码的童鞋挖掘xss漏洞时,都是一顿乱插,姿势对了,就能获得快感,姿势不对,就么反应。另外在freebuf里,有很多文章介绍过跨站编码,有兴趣的,可以搜索下。 本文介绍常见的编码方法,能力不足,如有其他意见,请指正。 0×01 常用编码 URL编码:一个百分号和该字符的ASCII编码所对应的2位十六进制数字,例如“/”的URL编码为%2F(一般大写,但不强求) HTML实体编码: 命名实体:以&开头,分号结尾的,例如“<”的编码是“<”
通过GET方法,将name的值赋值为变量$srt并将其直接输出。 即!如果name=<script>alert()</script>时,将会把结果直接输出。 构造POC
信息收集是渗透测试全过程的第一步,针对渗透目标进行最大程度的信息收集,遵随“知己知彼,百战不殆”的原则,先了解目标在利用目标。
首先说明一下 Emoji 是文字,而不是图标,所以 Emoji 字符是 Unicode 字符集中一部分,特定形象的 Emoji 表情符号对应到特定的 Unicode 字节。
XSS攻击的常见目标是盗取用户的cookie和其他敏感信息,这些信息可以用来进行会话劫持、身份冒充等进一步攻击。如何防御?
2. 这个时候我们可以把目光发展一下,找一找在【输出】出现在HTML属性里的情况。
做采集的都知道,一般采集过来的内容难免会带有html标签,如果有太多的标签会影响之后的数据分析或提取,所以需要过滤掉!PHP已经为我们提供了很多清除html格式的方法了,下面就让老高介绍一下。
分析:我们通过POST方式,向cmd提交内容,然后cmd经过htmlsmecialchars()过滤,再使用str_ireplace()经过黑名单black_list再过滤一次,最后eval()来执行cmd参数的内容;
对于互联网应用的开发,作为开发者必须时刻牢记安全观念,并在开发的代码中体现。PHP脚本语言对安全问题并不太关心,特别是对大多数没有经验的开发者来说。每当你做任何涉及到钱财事务等交易问题时,都要特别注意安全问题的考虑。
昨天(2018-07-04)微信支付的SDK曝出重大漏洞(XXE漏洞),通过该漏洞,攻击者可以获取服务器中目录结构、文件内容,如代码、各种私钥等。获取这些信息以后,攻击者便可以为所欲为,其中就包括众多媒体所宣传的“0元也能买买买”。
领取专属 10元无门槛券
手把手带您无忧上云