pigctf期末测评

pigctf期末测评

MISC 1

拿到图片,先binwalk一下,如下图

果然发现png图片后面跟了个ZIP,然后提取出来打开发现了一个flag.png,然后查看16进制文件没有发现什么问题,之后查看属性发现分辨率为986*470,但是大小为200kb左右,显然是不相匹配的,通过16进制编辑器修改分辨率为986*1376,然后在图片的左下角发现flag,

FLAG{5mall_L1_15_5tup1d}

MISC 2

http://drops.wooyun.org/tips/7828
一道CBC字节翻转攻击问题

    <?php
        $enc = "S9PsFp43k9VgyrggRHLbISjUAjwzSSPPajrF9Dzz0o/ieSZbxwGjTJ5xhAZEi5tDBjvwsQtH0BynlLC0p0F0zOZMx25M6iekcLvX//MNKSA=";
        $enc = base64_decode($enc);
        echo "<br>".($enc)."<br>";
        $enc[47] = chr(ord($enc[47]) ^ ord("9") ^ ord ("1"));
        echo "<br>".($enc)."<br>"; 
        $c = base64_encode($enc);
        $d = urlencode($c);
        echo "Plaintext after attack : <br>$c<br>";
        echo "Plaintext after attack : <br>$d<br>";
        $e = @decrypt(base64_decode($c));
        $uid = substr($e,strpos($e,"uid")+4,1);
        echo 'uid:'.$uid.'<br/>';
        if ($uid == 1){
                echo "<br>get the flag!!!";
        }
        else {
                echo "false!";
        }
?>

得到翻转后的密文的base64加密值:
S9PsFp43k9VgyrggRHLbISjUAjwzSSPPajrF9Dzz0o/ieSZbxwGjTJ5xhAZEi5tLBjvwsQtH0BynlLC0p0F0zOZMx25M6iekcLvX//MNKSA=

修改COOKIE之后提交得到flag,

WEB 1

根据注释的提示,网页的源码由于使用extract,故存在变量覆盖,然后直接提交get请求http://45.78.61.235/web1/?auth=1,转到了一个新的页面,然后再响应头里面发现了flag

WEB 2

进入页面,看了源码、请求等待都没发现东西,然后试试robots.txt,也没有,然后想到备份文件,加上’~’发现了源码如下:

    <?php
    function checkIN($number){
        for($i = 0; $i < strlen($number); $i++){
            $dig = ord($number[$i]);
            if(($digit >= ord('1')) && ($digit <= ord('9'))){
                return false;
            }
        }

        return $number == '3722304989';
    }


    if(eregi("hacker", $_GET[id])){
        echo("<p> not allowed!</p>");
        exit();
    }

    $_GET[id] = urldecode($_GET[id]);
    echo $_GET[id];
    if($_GET[id] == "hacker" && checkIN($_GET[num])){
        echo "<p> Access granted! </p>";
        echo "<p> flag:flag xxxxxxxxxxxxxxxxxx";

    }
?>

<br><br>
can you bypass it???

阅读之后判断是松散比较,构造下属请求如下:
http://45.78.61.235/web2/index.php?id=%2568%2561%2563%256B%2565%2572&num=0xdddddddd
得到flag为
flag{Your_are_a_g00d_PHP_learner!}

REV 1

首先通过OD的关键字查找,发现了文本参考字串“wrong”

对该行附近的字串进行查看,发现跳转和获取输入的关键代码

通过输入,不同的数据,发现该算法实现的功能是将一段输入进行位置调换后异或,然后与程序自带文本进行比较。

通过几次实验输入,得到调换顺序和异或对象(斐波那契数列)。
得到最终结果:flag{H4ppyRev!}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值