你真的会php,你真的会PHP吗?
你真的会PHP吗?
会?还是不会?
解题链接: http://ctf5.shiyanbar.com/web/PHP/index.php
1.看完源代码,没有有价值的信息,打开brup抓包会发现一个.txt,打开看一下
2.打开后发现是一个php程序,审计吧
$info = "";
$req = [];
$flag="xxxxxxxxxx";
ini_set("display_error", false);
error_reporting(0);
if(!isset($_POST[‘number‘])){
header("hint:6c525af4059b4fe7d8c33a.txt");
die("have a fun!!");
}
foreach([$_POST] as $global_var) {
foreach($global_var as $key => $value) {
$value = trim($value);
is_string($value) && $req[$key] = addslashes($value);
}
}
function is_palindrome_number($number) {
$number = strval($number);
$i = 0;
$j = strlen($number) - 1;
while($i < $j) {
if($number[$i] !== $number[$j]) {
return false;
}
$i++;
$j--;
}
return true;
}
if(is_numeric($_REQUEST[‘number‘])){ /*is_numeric — 检测变量是否为数字或数字字符串*/
$info="sorry, you cann‘t input a number!";
}elseif($req[‘number‘]!=strval(intval($req[‘number‘]))){
$info = "number must be equal to it‘s integer!! ";
}else{ $value1 = intval($req["number"]); $value2 = intval(strrev($req["number"])); if($value1!=$value2){ $info="no, this is not a palindrome number!"; }/*该数的反转的整数值应该和它本身的整数值相等*/
else{ if(is_palindrome_number($req["number"])){ /*palindrome number验证回文数字*/
$info = "nice! {$value1} is a palindrome number!"; }else{ $info=$flag; } } } echo $info;
也许你会问什么是回文数字?直接给例子
Example 1:
Input: 121
Output: true
Example 2:
Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
Example 3:
Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
经过审计我们可以发现如果我们要拿到flag,POST的number需要满足以下条件:
1.不为空,且不能是一个数值型数字,包括小数。(由is_numeric函数判断)
2.不能是一个回文数。(is_palindrome_number判断)
3.该数的反转的整数值应该和它本身的整数值相等。即:
intval($req["number"])=intval(strrev($req["number"]))
2,3看似矛盾,但可以利用空格或空字符串提交,如0200%00、0200%20,构造post提交
通过科学计数法构造:0e%00 满足条件1和条件3。继续构造0e-0%00(经测试,0e+0%00是不可以的)满足所有条件。
你真的会php,你真的会PHP吗?相关推荐
- 平安京服务器维护不能打字,《决战!平安京》:玩的真的累,我真的是服了这破游戏的举报系统...
从内测就开始玩,一开始玩的妖刀,然后被大砍特砍(难道是玩的人多)随后便转到辅助,玩一目连辉夜姬见过的ad太多了,有崩了就挂机的也有输了就怪队友跟不说话的,打了这么久,玩的时间不多却一直没卸载.从一开始 ...
- python真的有用吗-你真的认为python有那么好吗
为什么要放弃一切选择python?python有那么好吗,这么多人都一股脑的学习python,到底魅力在哪里呢? 如果你是一名新手,应该如何选择编程语言呢,这么多的编程语言,你应该作何抉择呢?我们知道 ...
- 华为真的注册鸿蒙,“鸿蒙”真的来了!华为注册了整本山海经?
5月24日消息,国家知识产权局商标局网站显示,华为已经申请注册"华为鸿蒙"商标,并标注该商品可用于操作系统程序. 图自国家知识产权局商标局网站 这条新闻一出,国内许多网友都是兴奋又 ...
- python真的有用吗-Python真的没有用吗?
中国看上去出代码资源是稀缺的,但是不知道怎么的,就像是钢材和光伏行业一样,总是一搞就过剩了?这也真是非常奇怪了,当年最在意的就是咱们国家钢产量上不去,也难怪,这本身就是工业化的重要指标,但是,让人想不 ...
- VR全景创业是否真的赚钱?项目真的靠谱吗?
说到创业,也许你心里会觉得这类项目对于技术和资金等要求都是比较高的,先别急着反驳,这是大多数人的心理.我们选择某个创业项目时,都需要从创业成本和盈利利润来做预算,现在告诉你有一个VR全景创业项目,几万 ...
- 你的项目真的需要Session吗? redis保存session性能怎么样?
在web开发中,Session这个东西一直都很重要,至少伴随我10年之久, 前一段时间发生一个性能问题,因为Redis session 问题,后来想想 其实我的项目session 是不需要的. 先看看 ...
- ICLR 2020 | GAN是否真的判断出了数据的真假?
©PaperWeekly 原创 · 作者|武广 学校|合肥工业大学硕士生 研究方向|图像生成 GAN 自提出以来就以生成对抗为目标进行模型优化,这种对抗真的区分了真实数据和生成数据了吗?ICLR 20 ...
- 从国内的996,到美国的朝9晚5,真的这么惬意吗?
作者:yeah22 先介绍下自己的背景吧: 国内本科 cs,之后在北京某 startup 工作了近一年,现在马里兰读软件工程,这个暑假远程链接到西雅图的亚马逊 AWS 组实习. 实习中最满意的是什么呢 ...
- python入门应该学什么专业好_真的能半个月学会Python吗?(文末附python入门进阶教程)...
这里为什么用 Python 举例呢? 因为在很多人看来,Python 比较"简单". 写这篇文章主要是因为我在知乎上看到了一条有趣的动态: 该条动态的作者认为一个高考600分以上的 ...
最新文章
- SQL Server 备份与恢复之四:备份类型和选项
- Input type (torch.cuda.DoubleTensor) and weight type (torch.cuda.FloatTensor) should be the same
- python出现的次数最多的元素_【Python 秘籍】序列中出现次数最多的元素
- WordPress 主题教程 #5:主循环
- 接收POst数据流数据
- 多个select 多个列_程序员,你还在 Select * 吗?
- Github 标星 3w+,热榜第一,使用 Python实现所有算法!
- 月薪五万的程序员是什么样的?
- eclipse下载速度过慢的解决方法
- UE4 坐标系 坐标轴旋转轴
- java ascii 编码方式,Java 字符编码 ASCII、Unicode和UTF-8
- css中图片不清晰解决方法
- 失业在家做什么赚钱好?失业在家怎么赚钱?
- 组建一个计算机网络系统有,组建一个计算机网络一般需要哪些部件
- python将图像变成灰度图像_如何在Python中将RGB图像转换为灰度?
- 阿峥教你实现UITableView循环利用
- 如何快速达到团队的销售目标
- DNA排序算法--图文
- java jquery愤怒的小鸟_如何做html5山寨版愤怒的小鸟
- Elasticsearch 5.4 Mapping详解
热门文章
- 用python爬取杭电oj的数据
- 在网页中加入神奇的效果
- 转]@SuppressWarnings 详解
- HDU 3420 Bus Fair [补]
- [置顶] Android仿人人客户端(v5.7.1)——应用主界面之左侧面板UI实现
- 水晶报表提示“出现打印错误。将停止打印”的原因,非page_Init
- [转载] Python程序输入一个字符串并查找总数的大写和小写字母
- [转载] java中接口(interface)详解
- [转载] Java中的strictfp关键字
- 05 jQuery的DOM操作