---恢复内容开始---

实验吧的一道题php审计题。拉下来写一写。

http://ctf5.shiyanbar.com/web/PHP/index.php

打开之后说have fun

那就抓包来看看吧

  

嗯...没啥收获,放在repeater里面看看

是这样的,根据response反馈的信息,我们可以看见 hint(提示)

那就打开它看看吧

代码审计走一波。

<?php

$info = "";
$req = [];
$flag="xxxxxxxxxx"; ini_set("display_error", false);
error_reporting(0); if(!isset($_POST['number'])){ //注意这里post请求 1.不能为空
header("hint:6c525af4059b4fe7d8c33a.txt"); //文件头添加hint提示。 die("have a fun!!"); // 直接就die了
}
foreach([$_POST] as $global_var) { //遍历数组
foreach($global_var as $key => $value) {
$value = trim($value); //trim() 函数移除字符串两侧的空白字符或其他预定义字符。
is_string($value) && $req[$key] = addslashes($value);
}
}
//global $var是外部$var的同名引用或者指针。
//函数
function is_palindrome_number($number) {
$number = strval($number); //本函数可将数组及类之外的变量类型转换成字符串类型。
$i = 0;
$j = strlen($number) - 1;//strlen() 函数返回字符串的长度
while($i < $j) {
if($number[$i] !== $number[$j]) {
return false;
}
$i++;
$j--;
}
return true;
} //判断是否为数值型
if(is_numeric($_REQUEST['number'])){ $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"])); //strrev() 函数反转字符串。 if($value1!=$value2){
$info="no, this is not a palindrome number!";
}else{
//判断回文数
if(is_palindrome_number($req["number"])){
$info = "nice! {$value1} is a palindrome number!";
}else{
$info=$flag;
}
} } echo $info;

如果要拿flag,需要满足以下条件:
1.不为空,且不能是一个数值型数字,包括小数。(由is_numeric函数判断)
2.不能是一个回文数。(is_palindrome_number判断)
3.该数的反转的整数值应该和它本身的整数值相等。即:
4.post个number.

最新文章

  1. Android总结篇系列:Activity Intent Flags及Task相关属性
  2. ping: unknown host www.baidu.com
  3. js 实现精确加减乘除
  4. AbstractMap学习记录
  5. ALTERA MAX10官方评估板,新鲜出炉!
  6. AppWidget框架
  7. 数据库:mongodb与关系型数据库相比的优缺点
  8. &ldquo;System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本&rdquo; 的解决方案
  9. MySQL Cluster2个数据节点压力测试--mysqlslap工具压400W写
  10. shell中的type命令
  11. TCP/IP笔记 四.应用层(2)——FTP
  12. 读JVM相关的一些笔记
  13. PHP5.5.38版本Zend Guard loader for 5.5安装(详细)
  14. 11.15luffycity(7)
  15. 关于link标签的用法, 不声明rel=stylesheet则无效? 在ff中必须声明rel属性!
  16. java-文件和I/O
  17. Android分享到微信时点击分享无反应的问题解决(注意事项)
  18. shutil模块(高级的文件copy)
  19. [JSOI2008]火星人
  20. cin关闭同步[转]

热门文章

  1. BuildWinRTL.dproj 用这个重新编译就行
  2. firemonkey 手机屏幕自适应程序问题
  3. 类成员函数指针的特殊之处(成员函数指针不是指针,内含一个结构体,需要存储更多的信息才能知道自己是否virtual函数)
  4. nginx 配置https并自签名证书
  5. IT++数学、信号、通讯类库,Blitz++数学,Armadillo 线性代数,Dlib网络,线程,图形,数学,图像,数据挖掘/机器学习,XML等等
  6. spring boot之actuator简介
  7. HTML连载10-details标签&amp;summary标签&amp;marquee标签
  8. Hexo+NexT(五):Hexo第三方插件提供功能及配置
  9. 老雷socket编程之websocket实现
  10. Java NIO 学习笔记(七)----NIO/IO 的对比和总结