你真的会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吗?相关推荐

  1. 平安京服务器维护不能打字,《决战!平安京》:玩的真的累,我真的是服了这破游戏的举报系统...

    从内测就开始玩,一开始玩的妖刀,然后被大砍特砍(难道是玩的人多)随后便转到辅助,玩一目连辉夜姬见过的ad太多了,有崩了就挂机的也有输了就怪队友跟不说话的,打了这么久,玩的时间不多却一直没卸载.从一开始 ...

  2. python真的有用吗-你真的认为python有那么好吗

    为什么要放弃一切选择python?python有那么好吗,这么多人都一股脑的学习python,到底魅力在哪里呢? 如果你是一名新手,应该如何选择编程语言呢,这么多的编程语言,你应该作何抉择呢?我们知道 ...

  3. 华为真的注册鸿蒙,“鸿蒙”真的来了!华为注册了整本山海经?

    5月24日消息,国家知识产权局商标局网站显示,华为已经申请注册"华为鸿蒙"商标,并标注该商品可用于操作系统程序. 图自国家知识产权局商标局网站 这条新闻一出,国内许多网友都是兴奋又 ...

  4. python真的有用吗-Python真的没有用吗?

    中国看上去出代码资源是稀缺的,但是不知道怎么的,就像是钢材和光伏行业一样,总是一搞就过剩了?这也真是非常奇怪了,当年最在意的就是咱们国家钢产量上不去,也难怪,这本身就是工业化的重要指标,但是,让人想不 ...

  5. VR全景创业是否真的赚钱?项目真的靠谱吗?

    说到创业,也许你心里会觉得这类项目对于技术和资金等要求都是比较高的,先别急着反驳,这是大多数人的心理.我们选择某个创业项目时,都需要从创业成本和盈利利润来做预算,现在告诉你有一个VR全景创业项目,几万 ...

  6. 你的项目真的需要Session吗? redis保存session性能怎么样?

    在web开发中,Session这个东西一直都很重要,至少伴随我10年之久, 前一段时间发生一个性能问题,因为Redis session 问题,后来想想 其实我的项目session 是不需要的. 先看看 ...

  7. ICLR 2020 | GAN是否真的判断出了数据的真假?

    ©PaperWeekly 原创 · 作者|武广 学校|合肥工业大学硕士生 研究方向|图像生成 GAN 自提出以来就以生成对抗为目标进行模型优化,这种对抗真的区分了真实数据和生成数据了吗?ICLR 20 ...

  8. 从国内的996,到美国的朝9晚5,真的这么惬意吗?

    作者:yeah22 先介绍下自己的背景吧: 国内本科 cs,之后在北京某 startup 工作了近一年,现在马里兰读软件工程,这个暑假远程链接到西雅图的亚马逊 AWS 组实习. 实习中最满意的是什么呢 ...

  9. python入门应该学什么专业好_真的能半个月学会Python吗?(文末附python入门进阶教程)...

    这里为什么用 Python 举例呢? 因为在很多人看来,Python 比较"简单". 写这篇文章主要是因为我在知乎上看到了一条有趣的动态: 该条动态的作者认为一个高考600分以上的 ...

最新文章

  1. SQL Server 备份与恢复之四:备份类型和选项
  2. Input type (torch.cuda.DoubleTensor) and weight type (torch.cuda.FloatTensor) should be the same
  3. python出现的次数最多的元素_【Python 秘籍】序列中出现次数最多的元素
  4. WordPress 主题教程 #5:主循环
  5. 接收POst数据流数据
  6. 多个select 多个列_程序员,你还在 Select * 吗?
  7. Github 标星 3w+,热榜第一,使用 Python实现所有算法!
  8. 月薪五万的程序员是什么样的?
  9. eclipse下载速度过慢的解决方法
  10. UE4 坐标系 坐标轴旋转轴
  11. java ascii 编码方式,Java 字符编码 ASCII、Unicode和UTF-8
  12. css中图片不清晰解决方法
  13. 失业在家做什么赚钱好?失业在家怎么赚钱?
  14. 组建一个计算机网络系统有,组建一个计算机网络一般需要哪些部件
  15. python将图像变成灰度图像_如何在Python中将RGB图像转换为灰度?
  16. 阿峥教你实现UITableView循环利用
  17. 如何快速达到团队的销售目标
  18. DNA排序算法--图文
  19. java jquery愤怒的小鸟_如何做html5山寨版愤怒的小鸟
  20. Elasticsearch 5.4 Mapping详解

热门文章

  1. 用python爬取杭电oj的数据
  2. 在网页中加入神奇的效果
  3. 转]@SuppressWarnings 详解
  4. HDU 3420 Bus Fair [补]
  5. [置顶] Android仿人人客户端(v5.7.1)——应用主界面之左侧面板UI实现
  6. 水晶报表提示“出现打印错误。将停止打印”的原因,非page_Init
  7. [转载] Python程序输入一个字符串并查找总数的大写和小写字母
  8. [转载] java中接口(interface)详解
  9. [转载] Java中的strictfp关键字
  10. 05 jQuery的DOM操作