[CTF/网络安全] 攻防世界 simple_php 解题详析

简介: PHP弱语言特性姿势参数a限制绕过参数b限制绕过

[CTF/网络安全] 攻防世界 simple_php 解题详析


代码解读


PHP弱语言特性

姿势

参数a限制绕过

参数b限制绕过

总结

题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

image.png


代码解读

$a=@$_GET['a']; 从HTTP GET请求参数中获取一个名为a的变量,并将其赋值给变量a。@符号用于禁止错误输出,如果不存在参数a则会将变量a设置为NULL。


$b=@$_GET['b']; 从HTTP GET请求参数中获取一个名为b的变量,并将其赋值给变量b。


if($a==0 and $a){ echo $flag1; } 如果变量a等于0并且a存在,则输出变量flag1的值。但是由于a不可能同时为0和存在,因此这个if语句不会执行。


if(is_numeric($b)){ exit(); } 如果变量b是一个数字,则终止程序的执行。


if($b>1234){ echo $flag2; } 如果变量b的值大于1234,则输出变量flag2的值。


PHP弱语言特性

在 PHP 中,有两种比较运算符用于比较两个值是否相等,它们分别是 == 和 ===,它们的区别如下:


== 比较运算符是一个松散比较,它只比较变量的值,而不考虑变量的数据类型。当比较两个变量时,如果它们的值相等,则返回 true。

例如:0 == "0" 返回 true。


=== 恒等比较运算符是一个严格比较,它不仅比较变量的值,还比较变量的数据类型和内存地址。当使用恒等比较运算符比较两个变量时,如果它们的值和数据类型都相等,则返回 true。

例如:0 === "0" 返回 false。


因为 == 操作符仅比较值,所以当比较字符串时,PHP 会尝试将字符串转换为数字进行比较

具体来说,PHP会依次执行以下步骤:


如果其中一个操作数是布尔值(true或false),则将其转换为1(true)或0(false)。


如果其中一个操作数是null,将其转换为整数0。


如果其中一个操作数是数组,将其转换为字符串Array。


如果操作数中的任何一个是对象,则将其转换为字符串Object。


对于两个操作数都是字符串的情况,PHP会将两个字符串中的非数字字符删除,然后将剩余的数字字符串转换为相应的数字进行比较。


如果以上都不适用,则将字符串转换为数字进行比较。


例如,当比较字符串"0123"和整数123时,返回 true;当比较字符串"12xxx"和整数12时,返回 true,因为 PHP 会将字符串转换为数字后进行比较。


姿势

参数a限制绕过

由于a等于0并且a存在,所以可构造开头数值为0的字符串a

GET:a=0qiu


参数b限制绕过

由于b不能为数字且b数值大于1234,因此可构造开头数值大于1234的字符串b

GET:b=1235qiu


回显如下:

image.png



总结

该题结合GET传参姿势考察PHP代码的解读及PHP弱语言特性。

我是秋说,我们下次见。

目录
相关文章
|
3月前
|
缓存 网络协议 安全
【网络攻防战】DNS协议的致命弱点:如何利用它们发动悄无声息的网络攻击?
【8月更文挑战第26天】DNS(域名系统)是互联网的关键组件,用于将域名转换为IP地址。然而,DNS协议存在安全漏洞,包括缺乏身份验证机制、缓存中毒风险及放大攻击的可能性。通过具体案例,如DNS缓存中毒和DNS放大攻击,攻击者能够误导用户访问恶意站点或对目标服务器实施DDoS攻击。为了防范这些威胁,可以采用DNSSEC实现数字签名验证、利用加密的DNS服务(如DoH或DoT)、限制DNS服务器响应以及及时更新DNS软件等措施。理解并应对DNS的安全挑战对于确保网络环境的安全至关重要。
97 2
|
6天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
6月前
|
安全 网络安全 PHP
深入理解PHP的命名空间与自动加载机制网络安全与信息安全:防护之道与攻防之术
【5月更文挑战第29天】在PHP的开发实践中,命名空间和自动加载机制是两个重要的概念,它们共同构成了现代PHP代码组织的基础。本文将详细解释命名空间在PHP中的应用,探讨其解决代码冲突和提高代码复用性的能力,同时深入研究自动加载机制的原理及其在项目中的实际运用,帮助开发者构建更加高效、易于维护的PHP应用。
|
6月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:防护之道与攻防之策
【5月更文挑战第29天】在数字化时代,网络安全与信息安全已成为维护个人隐私、企业资产和国家安全的重要屏障。本文深入探讨了网络安全漏洞的成因、加密技术的应用以及提升安全意识的必要性,旨在为读者提供一个全面的安全防护知识框架。通过对当前网络威胁的分析,我们揭示了安全漏洞的本质及其对信息系统的潜在影响,并介绍了最新的加密技术如何作为防御工具来保护数据传输的安全。此外,文章还强调了培养全民网络安全意识的重要性,提出了一系列实用的安全建议和最佳实践。
|
6月前
|
SQL 安全 网络安全
网络安全与信息安全:防护之道与攻防之策
【5月更文挑战第13天】 在数字化时代,网络安全和信息安全已成为维护信息空间稳定的关键。本文深入探讨了网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性。通过对现有安全威胁的分析,提出了一系列防御策略,并强调了持续教育和技术创新在构建坚固防线中的作用。
|
3月前
|
安全 网络安全 数据安全/隐私保护
网络攻防演练需要注意哪些
【8月更文挑战第14天】
97 1
|
3月前
|
PHP
PHP——将网络图片转为Base64
PHP——将网络图片转为Base64
46 1
|
3月前
|
安全 中间件 网络安全
深入浅出PHP框架之Laravel的优雅云计算与网络安全:探索云服务、网络安全和信息安全的技术领域
【8月更文挑战第29天】在编程的世界里,PHP以其灵活性和易用性广受欢迎。本文将深入探讨PHP的一个流行框架——Laravel,揭示它如何以简洁、高雅的解决方案满足复杂的开发需求。我们将一起走进Laravel的世界,探索其背后的哲学,以及它如何让代码变得更加动人和富有韵律。
|
3月前
|
安全 网络安全 PHP
云计算与网络安全:技术融合下的新挑战PHP 在现代Web开发中的角色和挑战
【8月更文挑战第23天】随着云计算技术的飞速发展,企业和个人越来越依赖云服务来处理和存储数据。然而,这种便利性也带来了前所未有的网络安全风险。本文将探讨云计算环境中的网络安全挑战,分析信息安全的关键问题,并提出相应的防护措施。我们将深入讨论如何通过策略和技术的结合来增强云安全,确保数据的安全和隐私保护。
|
5月前
|
SQL 安全 网络安全
网络安全攻防实战:黑客与白帽子的较量
【6月更文挑战第29天】网络安全战场,黑客与白帽子的博弈日益激烈。黑客利用漏洞扫描、DDoS、SQL注入等手段发起攻击,而白帽子则通过防火墙、入侵检测、数据加密等技术防守。双方在技术与智慧的较量中,未来将更多融入AI、区块链等先进技术,提升攻防效率与安全性。面对网络威胁,提升技能与意识至关重要。