攻防世界Web新shou区-simple_php
题目描述:
小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
- 先打开场景,果然是php代码审计题目
- 我们可以简单阅读一下这段代码,大概就是通过get方式传入a和b参数的值,然后判断a的值和0是否相等,b的值不能是纯数字或者数字型字符串,而且要大于1234
- 先解决a,
- a和0数字0进行松散比较必须相等,所以a的值为数字0是可以的,其次由于参数a是get方式传进去的值,所以默认是字符串类型,那么在松散比较下,a的值为字符串0和数字0也是true
- 其次字符串0和false比较是否相等
- tips:这里需要知道php在进行比较时,有两种比较方式,当采用双等号(
==
)比较时会进行松散比较,只比较两者的值,而不比较两者类型,
- 比如,当一个字符串和数字比较时,会先将字符串转换为数字,再比较,'1'==1
,这两个是相等的,
- 但是如果不是数字型字符串,而是'a'
,非数字字符串和数字类型比较,php会直接返回0,这就导致'a'==0
是成立的。
- 其次,非空字符串都能通过if条件判断,还有一点就是,如果是这样的字符串123abc
,最终会转化为数字123
- 转化机制是,php在松散比较下,字符串转换为数字规则是,遇到非数值就停止转换,就是123abc
,只会转换到a前面,因为a是非数值,所以就只转换到这里,后续不再转换,如果是abc123
,那就直接返回0,因为开头a是非数值
- tips:这里需要知道php在进行比较时,有两种比较方式,当采用双等号(
- 其次是b的值,b的值也是用弱类型比较,b的值不能是数字类型或纯数字字符串,我们可以想到用
'abcow'
,任意都是,然后要大于数字1234,如果是abc
和数字1234比较,php会将'abc'
返回0。但这里也用了双等号,松散比较,所以我们可以构造'9999abc'
,这样,既不是纯数字字符串,在php松散比较下,又大于1234
6. 这里构造payload?a=任意字母&b=大于1234的数字和任意字母
,例如?a=xxx&b=66666xx
,成功获得flag,本题结束
攻防世界Web新shou区-simple_php相关推荐
- 攻防世界Web新shou区-webshell
题目描述: 小宁百度了php一句话,觉着很有意思,并且把它放在index.php里. 来到场景里发现页面是显示这样一段文字,意识是以post方式提交一个shell参数,然后把shell参数的值当成ph ...
- 攻防世界Web新shou区-command_execution
题目描述: 小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗. 来到场景界面,发现是一个ping功能,先尝试是否可以ping通 ping功能没有问题,题目中说没有wa ...
- 攻防世界 web高手进阶区 9分题 favorite_number
前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是favorite_number的writeup 解题过程 进入界面 简单的代码审计 首先是个判断,既要数组强等于,又要首元素不等 然 ...
- 攻防世界 web高手进阶区 8分题 Web_python_block_chain
前言 继续ctf的旅程 开始攻防世界web高手进阶区的8分题 本文是Web_python_block_chain的writeup 解题过程 这是个区块链题 这..裂开了啊 没搞过区块链 从零开始学习 ...
- 攻防世界 web高手进阶区 9分题 bilibili
前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是bilibili的writeup 解题过程 进来界面 这尼玛出题人是黑还是粉啊 笑死 看题目意思是买lv6 惯例源码+御剑 没发现什 ...
- 攻防世界-web高手进阶区
文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...
- 攻防世界 web高手进阶区 10分题 weiphp
前言 继续ctf的旅程 开始攻防世界web高手进阶区的10分题 本文是weiphp的writeup 解题过程 进入界面 点击 进入一个登陆界面 没有注册 那肯定得找源码了 惯例源码+御剑 发现git泄 ...
- 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth)WriteUp
文章目录 解题部分 总结: 解题部分 题目来源 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth) 1.拿到题目以后,发现是一个index.php的页面,并且设备-没有显示 ...
- 攻防世界 web高手进阶区 7分题Confusion1
前言 继续ctf的旅程 开始攻防世界web高手进阶区的7分题 本文是Confusion1的writeup 解题过程 进来的界面如下 (后来知道是php vs python的意思,也就是给提示跟pyth ...
最新文章
- Linux C中strcpy , strncpy , strlcpy 的区别
- Python爬虫实战(4):抓取淘宝MM照片
- Spring rmi
- buu Alice与Bob
- 与VS集成的若干种代码生成解决方案[博文汇总(共8篇)]
- Ubuntu中设置环境变量PATH
- 嵩天-Python语言程序设计程序题--第一周:Python基本语法元素
- java中u怎么用_Java中interrupt的使用
- Threading in C#
- 教你编写一个机器学习代码也能使用的单元测试
- pku 1149 PIGS(最大流)
- 64位plsql和64位Oracle客户端安装以及注册,内含百度云资源
- vue项目html5调取手机摄像头录像并上传
- 赵小楼《天道》《遥远的救世主》深度解析(6)为什么肖亚文说丁元英是魔是鬼都可以,就是不是人?
- Redis基础知识点面试手册
- Janitor Troubles
- 路由巧设置 局域网轻松限制BT下载
- GitHub的Linux配置与常用操作
- sql server 2008 R2 与 sql server 2012 下载地址(包括x86、x64)
- php isset()和empty()的使用区别
热门文章
- 【2019西电网信杯】线上赛部分题wp
- int与字符串之间转换
- JavaScript闭包(必考三座大山之二)
- 记一次hashMap遍历时删除异常
- VS2015 + Qt 5.7.0 出现ASSERT failure QtFontFamily::ensurePopulated(void) 解决办法
- 第一性原理与“我思故我在”
- 【王喆-推荐系统】线上服务篇-(task3)召回层
- YOLOV3代码与原理相互结合的理解(重点在特征图的输出的元素的解析)
- 我的世界服务器 血月概率修改,《我的世界》血月事件来袭!据说没人活过这一夜,不信你来试试?...
- 进程间的7种通信方式全解析及代码示例