
安全
文章平均质量分 95
。。。
ZeroHeroX
这个作者很懒,什么都没留下…
展开
-
DATA URL:嵌入 URL 中的数据资源
小尺寸图片、文本等数据 直接嵌入在 URL 中,不需要通过网络连接从服务器中获取。有利于 降低服务器压力,提高 HTTP 请求的效率(HTTP 连接的建立与维护所耗费的资源多用于大型资源),从而提高网页的加载速度。Base64 编码使用的字符集是 URL 兼容的,这意味着它不包含 URL 特殊字符,如问号、斜杠、等号等。因此图片等二进制资源常使用 Base64 进行编码以方便资源的传输。但 Base64 编码通常会导致数据占用空间增大约 33%,这意味着资源在 DATA URL 中占用的内存空间会比原始资源原创 2023-10-08 10:08:55 · 2748 阅读 · 0 评论 -
CTF 全讲解:[SWPUCTF 2021 新生赛]Do_you_know_http
HTTP 请求报文中的 User-Agent 请求头是一个用来 标识发送请求的客户端(通常是浏览器或其他网络应用程序)的字符串。这个字符串通常包含了客户端的应用程序名称、版本号、操作系统信息和一些其他相关的信息,用来 帮助服务器识别请求的来源。User-Agent 请求头的 主要目的 是为了让服务器能够根据客户端的不同特性来适配响应内容,以提供更好的用户体验。原创 2023-10-07 20:39:32 · 2369 阅读 · 8 评论 -
PHP 伪协议:使用 php://input 访问原始 POST 数据
php://input 是 PHP 提供的一个伪协议,允许开发者 访问 POST 请求的原始内容。enable_post_data_reading 是 PHP 中的一个布尔配置项,该配置项决定了 是否在 PHP 启动时读取和解析 POST 数据以填充 $_POST 与 $_FILES 超全局变量。在 默认情况 下,enable_post_data_reading 是 开启 的。原创 2023-10-07 19:11:56 · 9877 阅读 · 0 评论 -
PHP 伪协议:使用 php://filter 为数据流应用过滤器
php://filter 的主要作用是提供一种机制,让您可以轻松地在数据流上应用一个或多个过滤器。convert.base64-encode 与 convert.base64-decode 是 php://filter 所支持的过滤器,使用这两个过滤器等同于使用 base64_encode() 与 base64_decode() 对数据流进行处理。在为 php://filter 指定过滤器时,可以通过 管道符 | 指定多个过滤器(过滤器列表),这些过滤器将按照 从左至右 的顺序 依次 对数据流进行处理。原创 2023-10-07 13:10:45 · 4526 阅读 · 1 评论 -
PHP 行事准则:allow_url_fopen 与 allow_url_include
在开启 allow_url_include 配置项后,PHP 仅能够对远程文件进行读写等文件操作。在开启 allow_url_fopen 配置项后,PHP 将能够通过 include 等函数 将远程文件包含至当前文件并将其作为 PHP 代码进行执行。allow_url_include 的生效依赖于 allow_url_fopen 配置项的开启。自 PHP5.2 版本开始,allow_url_include 配置项的默认配置均为 Off,而 allow_url_fopen 配置项的默认配置始终为 On。原创 2023-10-06 16:04:59 · 3914 阅读 · 1 评论 -
PHP 反序列化漏洞:__PHP_Incomplete_Class 与 serialize(unserialize($x)) !== $x;
__PHP_Incomplete_Class 对象的出现使 serialize(unserialize($x)) !== $x; 也成为了可能。在 PHP 中,当你尝试将序列化文本进行反序列化操作以获得一个 对象 时,若 与序列化文本相关联的类还没有在当前 PHP 上下文中被定义或包含时,PHP 就会使用 __PHP_Incomplete_Class 对象来代替这个对象。原创 2023-10-02 16:05:03 · 1361 阅读 · 0 评论 -
PHP 反序列化漏洞:身份标识
身份标识即对象的属性所使用的访问修饰符在序列化文本中的体现,私有属性与受保护属性的身份标识分别是 NUL所属类的名称NUL 与 NUL*NUL ,公有属性则无身份标识以与前两者相区分。空字符这类控制字符是无法通过复制粘贴这一操作进行传输的。在尝试利用 PHP 反序列化漏洞时,往往需要使用到 URL。如果将 包含身份标识的序列化文本进行 URL 编码处理,那么其中的 控制字符就能同 URL 一同转移了。原创 2023-10-02 10:35:41 · 493 阅读 · 0 评论 -
PHP 反序列化漏洞:手写序列化文本
我们仍需要 `对 PHP 中各种数据类型的序列化文本的结构有一定认识`。在某些特殊场景下,`手写序列化文本` 才是最好的选择🧙🏻♂️。除字符串前缀 s: 中的字母 对大小写不敏感外,其他数据类型的前缀中的字母都 仅存在一种大小写形式(大写或小写)。在 PHP 中,当对象被序列化时,对象的非公共属性的名称会被特殊处理以表示其可见性。原创 2023-10-01 13:31:57 · 422 阅读 · 0 评论 -
MD5 绕过第三式:ffifdyop
二进制数据会被转化为 ASCII 字符✨,如果某一个字符串在经过 MD5 哈希后,得到的二进制数据转化为 ASCII 文本后恰能够与周围的文本形成 SQL 注入语句,那么我们就能够绕过限制,成功发起攻击😈。ffifdyop 经过两次转化后得到的结果是 'or'6�]��!r,��b。位于 or 两侧的单引号可以用于闭合两端的单引号,使得 or 不再被 MySQL 认为是字符串,而是一个关键字,发挥着 逻辑或运算符 的作用。原创 2023-09-30 18:11:15 · 859 阅读 · 0 评论 -
[WUSTCTF 2020]朴实无华:PHP 下的 intval 绕过技巧
在 PHP7.2.5 以下的某个版本以前,intval() 函数无法正确解析字符 E 或 e,于是 intval 在解析到 E 或 e 时立即停止,这导致科学计数法实际并未生效。intval() 在 PHP7.2.5 及以上版本 中的表现符合预期,与我们对科学计数法的认知相符。intval() 函数 在 PHP7.2.5 以下的某个版本以前(仅测试了 PHP7.2.5 与 PHP7.0.0,PHP7.0.0 中,intval() 的表现存在异常,而在 PHP7.2.5 则表现正常。) 表现异常。原创 2023-09-29 19:29:50 · 3969 阅读 · 0 评论 -
再生之术:Root 密码遗忘的 CentOS8 Stream 解决方案
考虑到 Linux 需要在各种各样的硬件上运行,有些硬件需要 特定的驱动才能进行访问。直接在内核映像中包含所有可能的驱动将使内核映像变得非常庞大。使用 initrd 或 initramfs 可以加载一个 小的、特定的、只包含必要驱动及相关工具的环境。临时文件系统中的 /sysroot 文件包含了实际的 root 文件系统,进入该文件系统不需要经过任何验证。通过 /sysroot 文件,我们将能够 在不使用 root 密码的情况下拥有 root 用户的权限。原创 2023-09-28 21:22:49 · 2014 阅读 · 0 评论 -
MD5 绕过第二式:数组绕过
2004 年,王小云院士在密码学大会上宣布 四个国际通用 的哈希算法 MD5、 HAVAL- 128、MD4 和 RIPEMD 已被破解,震惊全球👏。在会上,王小云公布了一种方法,可以更有效地找到哈希函数的两个不同输入,这两个输入会产生相同的哈希值(这一现象被称为哈希冲突)。理论上,为了找到能够产生哈希碰撞的另一数据,可能需要尝试的次数接近 2 的 80 次方💥。但是,王小云的方法大大减少了这个数字,虽然仍然需要巨大的计算量,但这个方法确实暴露了MD5 的潜在弱点。美国对于王小云的研究大为震撼,原创 2023-09-27 20:32:49 · 1543 阅读 · 0 评论 -
MD5 绕过第一式:弱比较绕过
在 PHP 中,隐式类型转换(Implicit Type Conversion)是指在某些操作中,PHP 会自动 将数据由一种数据类型转换为另一个数据类型,而无需显式地编写 类型转换 代码。在 PHP 中,若弱比较运算符的两个操作数 均为字符串。PHP 将 依据不同 PHP 版本下字符串转化为数值的规则 将两个操作数转化为数值。在 PHP 中,若弱比较运算符的两个操作数分别为 数值 与 字符串。PHP 将 依据不同 PHP 版本的转化规则 将两个操作数中的一个转化为另一种数据类型。原创 2023-09-27 09:57:21 · 1693 阅读 · 0 评论 -
PHP 变动:PHP 8 版本下字符串与数值的弱比较
PHP8 仍旧保留了隐式类型转换 这一特性,但在字符串与数值的弱比较方面做出了优化。在 字符串与数值的弱比较 过程中,PHP 将 依据字符串的不同 选择 将字符串转换为数值 或 将数值转换为字符串 后再进行比较。具体规则如下:若字符串 符合数值字符串的定义,则 PHP 尝试 将字符串转化为数值 后再进行比较。若字符串 不符合数值字符串的定义,则 PHP 尝试 将数值转化为字符串 后再进行比较。原创 2023-09-24 12:05:47 · 974 阅读 · 0 评论 -
CTF 全讲解:[SWPUCTF 2021 新生赛]jicao
了解 PHP 弱比较的同学可能会想着通过 POST 提交数据 id=0 来使得判断语句成立。这是由于在 PHP 中,倘若 数值与字符串进行弱比较,则 PHP 会优先将字符串转化为数值后再进行比较。而 wllmNB 转化为数值的结果为零,与 $id 的比较结果将为 true。这样思考有一定的依据,但 忽略了一个事实,即通过 POST 与 GET 向服务器提交的数据都将以 字符串的方式 存储在 $_GET 与 $_POST 中。你以为提交 POST 数据 id=1 后,$id 中存储的数据将为 数值 1 ,而原创 2023-09-23 14:04:11 · 2202 阅读 · 0 评论 -
PHP 反序列化漏洞:序列化与反序列化
序列化操作将数据结构转换为可以 存储或传输的格式的过程(包裹最基本的功能),其主要目的是 将数据转化为一种通用的格式(虽然快递中的内容千变万化,但你总不能光看快递的外观就知道里面装着什么),以便在不同的环境中使用(世界上可能存在没见过快递的人,但破坏总是人的天赋)😈。原创 2023-09-22 19:58:24 · 435 阅读 · 0 评论 -
CTF 全讲解:[SWPUCTF 2022 新生赛]webdog1__start
得分项:信息收集、MD5 绕过、弱比较、命令执行漏洞、嵌套 eval()、Linux 命令、URL 编码、信息收集、PHP 源码审计、空格绕过、限制长度原创 2023-09-17 22:37:20 · 1449 阅读 · 5 评论 -
极客之眼 Nmap:窥探世界的第一步
Nmap(Network Mapper) 是 一个免费的开源网络扫描工具,它可以用来探测主机和端口,以及执行漏洞扫描和安全审计。Nmap可以扫描单个主机或整个网络段,识别目标主机的操作系统、应用程序和服务,确定网络拓扑,并生成可视化的拓扑图和报告。Nmap 可在所有主要计算机操作系统上运行,并且提供控制台和图形版本。Nmap 具有许多高级功能,包括对不同类型的扫描技术和扫描策略的支持,以及对大规模网络和高速网络的扫描性能的优化。Nmap 还支持自定义脚本,可以扩展其功能以满足不同的需求。原创 2023-04-29 20:58:07 · 2592 阅读 · 0 评论 -
使用 Vim 编辑器的过程中可能产生的敏感文件(交换文件)
在使用 Vim 进行文件的编辑时,可能会产生交换文件。若在将文件部署到服务器中,将导致信息的泄露。在使用 Vim 编辑文件的过程中,Vim 将自动创建交换文件(交换文件可理解为源文件在某一时间段的副本)。交换文件在用户从 Vim 编辑器中正常退出后将被自动删除。而当用户未正常退出 Vim 时(计算机的突然关机、与 Vim 相关的终端突然关闭及 Vim 进程的突然关闭等事件),交换文件将保留在计算机中,等待用户使用其进行文件的恢复。原创 2023-03-19 13:53:36 · 2119 阅读 · 1 评论 -
sqli-labs 11~14 多命通关攻略(报错注入)
由于该关卡中会提示错误信息,所以我们可以通过报错注入来爆破数据库。原创 2023-01-16 10:27:04 · 644 阅读 · 7 评论 -
sqli-labs 9~10 多命通关攻略(Python3 自动化实现时间盲注)
三种输入,sqli-labs 的回显区域显示的内容均,因此我们只能使用基于时间的注入方式。原创 2023-01-13 10:55:15 · 890 阅读 · 0 评论 -
sqli-labs 第八关 多命通关攻略(Python3 自动化实现布尔盲注)
在使用了这两种对布尔盲注的实现后,相信各位都感觉到了采用了二分查找算法的 Python 实现相比于普通的 Python 实现速度有很大的提升吧,这种执行速度上的差异会随着被判断字符串的长度而变得更为明显。在转换过程中,MySQL 将对字符串的每一个字符从左往右进行扫描,一旦遇到非数字的字符将停止继续扫描(如果字符串的第一个字符为非数字字符,则将该字符串转换为数值的结果为。),我们先对数据库的名称的长度位数进行判断,相信数据库名称的长度的位数是不可能超过。让我们构造语句来判断数据库名称的第一个字符是否为。原创 2023-01-09 22:03:11 · 836 阅读 · 0 评论 -
BUUCTF 之 [ACTF2020 新生赛]Exec(命令执行漏洞)
这界面和这网页标题结合起来,相信给位都能猜到这个靶场中很有可能存在命令执行漏洞。文件往往位于根目录下,但也不要被反套路了。可以看到并没有我们期望的文件。这些文件夹都不需要管它,在。原创 2023-01-08 12:07:45 · 1370 阅读 · 0 评论 -
sqli-labs 5~6 多命通关攻略
在 right() 函数无法精确对回显区域的显示内容进行精确的偏移后,我尝试了 substr()、mid()、substring() 等截取函数,发现都无法做到精确偏移的效果。退而求其次,我们可以将偏移量减小为回显区域可显示的最大字符长度的一半。在这个例子中,我们可以将 right() 函数的第二个参数由原来的 32 减小为 16。观察上面多次的偏移结果,我们可以发现我们为 right() 函数设置的第二个参数并不总是如我们所愿的原因是符号问题right() 函数的第二个参数为32时的返回结果。原创 2023-01-06 16:25:31 · 801 阅读 · 1 评论 -
sqli-labs 第七关 多命通关攻略
错误输入与不正常输入的返回结果是相同的。该页面的 PHP 代码存在这么一个判断语句,在 SQL 查询结果不为空集时,返回结果为;反之返回。怎么会这样?等等,我们刚刚得出的结论好像被忽略了:该页面的 PHP 代码存在这么一个判断语句,在 SQL 查询结果不为空集时,返回结果为;反之返回。既然返回结果为空都将返回,那我们刚刚构造的判断语句又怎么能够判断出注入类型呢?在遇到读写权限问题后,尝试向搜索引擎寻求帮助,但解决方案大多针对 Linux 操作系统且并不详细,只好自己摸索了。原创 2023-01-05 21:52:50 · 2125 阅读 · 2 评论 -
sqli-labs 1~4 多命通关攻略
而当超出这个范围时,union 前一部分的 SQL 查询结果为空,后一部分的查询结果中的第一行成为这整一个查询语句的第一行,而 where 语句仅作用于前部分语句,所以当我们使 id 的值为 1000 时,MySQL 仍旧没有报错,而是显示了后部分查询结果的第一行,即 emails。通过上面的介绍,我想各位都会更愿意使用 group_concat() 函数而不是 limit 关键字,因为 group_concat() 函数一次性就可以显示所有内容,而 limit 却只能一个一个的显示。可以看到报错信息了。原创 2022-12-29 16:55:42 · 399 阅读 · 0 评论 -
phpstudy 搭建 sqli-labs SQL 注入靶场
在过去,如果文件的名称仅大小写不同,则 Windows 将无法访问这些文件,因为 Windows 应用程序将文件系统视为不区分大小写,并且无法区分名称仅大小写不同的文件。所以刚刚的 Warning 是在提醒我们,GitHub 中的目标项目中的某个文件夹中出现了有大小写之分的同名文件。Windows 的文件系统默认是对文件夹大小写不敏感的,也就是说 Class 文件夹与 class 会被认为是同一个文件夹,不单单是文件夹,对文件也是这样的。,使用 cd 命令切换到将用来安装项目文件的目录下。原创 2022-12-25 22:56:00 · 1374 阅读 · 3 评论 -
BUUCTF 之 [ACTF2020 新生赛]Include
综上,可以发现 flag.php 页面通过 get 方式中的参数 file 来包含网站当前目录下的其他文件(如 flag.php),再加上提示 “你能找到其他 flag 吗?” ,我们可以推断,要解答该题目需要获取 flag.php 的源代码。我们可以通过将包含的文件进行转码,让浏览器无法识别这是 PHP 代码,其也就无法执行该 PHP 文件,于是将文件中的内容直接显示出来,我们将通过 PHP 伪协议来完成这一动作。后,我们可以得到一段 PHP 代码,其中就包含了 flag。可以发现,题目首页中的。原创 2022-12-29 09:49:05 · 699 阅读 · 0 评论 -
BUUCTF 之 [极客大挑战 2019] Havefun(GET 传参)
网站首页没有按钮,提示信息等等。遇到这种情况往往需要查看网页源代码或进行网站后台扫描。我们先来查看一下网页源代码(右键后点击。在地址栏中输入构造后的链接,敲击。启动靶机后,映入眼帘的是一只猫。这是一段 PHP 代码。即可获得 flag。原创 2022-12-29 09:00:37 · 2571 阅读 · 0 评论