图个欢乐~

  • WEB gift

没啥可说的 主要考察snow加密 不知道这个的没法做~key题目给了提示为标题~参考链接 不过不太理解为啥web题变成了隐写~

  • WEB gift php

题目提示: vim写代码的时候总是被打断
这里就考察swp这个东东了,放一段简介
vim中的swp即swap(交换分区)的简写,在编辑文件时产生,它是隐藏文件。这个文件是一个临时交换文件,用来备份缓冲区中的内容。类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。
如果文件正常退出,则此文件自动删除。
如果并没有对文件进行修改,而只是读取文件,是不会产生swp文件的
所以用上面所讲的知识点访问.index.php.swp得到源码

<?php
function areyouok($greeting){
    return preg_match('/Merry.*Christmas/is',$greeting);
}

$greeting=@$_POST['greeting'];
if(!areyouok($greeting)){
    if(strpos($greeting,'Merry Christmas')!==false){
        echo 'Merry Christmas. '.'flag{259efcb4-bb57-4967-8aa8-8271f04f655a}';
    }else{
        echo 'Do you know .swp file?';
    }
}else{
    echo 'Do you know PHP?';
}
?>

其实就是涉及到弱类型比较 但这两个函数参数为数组时,返回null,即可绕过~

  • WEB php gift plus
<?php
function areyouok($greeting){
    return preg_match('/Merry.*Christmas/is',$greeting);
}

$greeting=@$_POST['greeting'];
$flag = "111";
echo $$greeting;
if(!is_array($greeting)){
    if(!areyouok($greeting)){
        if(strpos($greeting,'Merry Christmas')!==false){
            echo 'Merry Christmas. '.'flag{xxxxxx}';
        }else{
            echo 'Do you know .swp file?';
        }
    }else{
        echo 'Do you know PHP?';
    }
}
?>

跟上一题比多了个数组判断,其实也间接性的给上一题给了点提示~其实经常打比赛这道题是不难的,因为打比赛是肯定认识p神的,认识p神肯定就要看他博客的,参考链接 简言之就是 pcre设定了一个回溯次数上限,只要溢出这个次数 就会 返回false~