博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一题关于PHP的CTF
阅读量:6512 次
发布时间:2019-06-24

本文共 696 字,大约阅读时间需要 2 分钟。

if(isset($_GET['time'])){         if(!is_numeric($_GET['time'])){                 echo 'The time must be number.';         }else if($_GET['time'] < 60 * 60 * 24 * 30 * 2){                         echo 'This time is too short.';         }else if($_GET['time'] > 60 * 60 * 24 * 30 * 3){                         echo 'This time is too long.';         }else{                 sleep((int)$_GET['time']);                 echo $flag;         }                 echo '

'; }

这里用is_numeric检查是否为数字,而后面用(int)将字符型数字转为数字型数字,那么我们来比较一下这两个函数对字符型数字的处理。

        前者支持普通数字型、科学记数法型、部分支持十六进制0x型,在前者支持的形式中,后者不能正确转换的类型有十六进制型、科学计数法型(部分)。
        因此本题flag在部分环境下可以是?time=0x4F1A01或者部分环境下是?time=5.184001e6,而在部分环境下是无解的。
5.184001e6 = 5184001

转载地址:http://vlsfo.baihongyu.com/

你可能感兴趣的文章
ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
查看>>
解决使用Handler时Can't create handler inside thread that has not called Looper.prepare()
查看>>
跟我一起学docker(四)--容器的基本操作
查看>>
磁化强度
查看>>
C/C++ 数据范围
查看>>
LVS+keepalived+nginx
查看>>
monkey如何通过uiautomatorviewer的bounds坐标点击控件
查看>>
第22章,mysql数据库-1
查看>>
【亲测】教你如何搭建 MongoDB 复制集 + 选举原理
查看>>
虚拟化网络技术
查看>>
阿里云中间件推出全新开发者服务
查看>>
56.随机产生的id重复问题
查看>>
一个快速检测系统CPU负载的小程序
查看>>
java.lang.IllegalArgumentException: No bean specified
查看>>
Wireshark and Tcpdump tips
查看>>
第一课 计算机及操作系统基础知识
查看>>
windows2003单域迁移到2008R2服务器
查看>>
cacti相关资料网站
查看>>
我的友情链接
查看>>
网站的开发流程介绍(转)
查看>>