DDCTF2019-Web Write up

Web1 滴~

友好的第一题:提示比较多。。一点一点试就好啦。向是个杂项题= =醉了 打开网页

发现URL是base64拿去解密发现一次不行得多试一次。
NjY2QzYxNjcyRTZBNzA2Nw==
两次解密后发现是16进制
666C61672E6A7067
拿去做ascii
flag.jpg
跟网站回显的一样说明可以通过构造URL去访问文件尝试一下。
把index.php进行ascii再进行两次加密
TmprMlpUWTBOalUzT0RKbE56QTJPRGN3

发现果然可以访问把文件的内容也copy出来了

data:image/gif;base64,PD9waHANCi8qDQogKiBodHRwczovL2Jsb2cuY3Nkbi5uZXQvRmVuZ0JhbkxpdVl1bi9hcnRpY2xlL2RldGFpbHMvODA2MTY2MDcNCiAqIERhdGU6IEp1bHkgNCwyMDE4DQogKi8NCmVycm9yX3JlcG9ydGluZyhFX0FMTCB8fCB+RV9OT1RJQ0UpOw0KDQoNCmhlYWRlcignY29udGVudC10eXBlOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04Jyk7DQppZighIGlzc2V0KCRfR0VUWydqcGcnXSkpDQogICAgaGVhZGVyKCdSZWZyZXNoOjA7dXJsPS4vaW5kZXgucGhwP2pwZz1UbXBaTWxGNldYaE9hbU41VWxSYVFrNTZRVEpPZHowOScpOw0KJGZpbGUgPSBoZXgyYmluKGJhc2U2NF9kZWNvZGUoYmFzZTY0X2RlY29kZSgkX0dFVFsnanBnJ10pKSk7DQplY2hvICc8dGl0bGU+Jy4kX0dFVFsnanBnJ10uJzwvdGl0bGU+JzsNCiRmaWxlID0gcHJlZ19yZXBsYWNlKCIvW15hLXpBLVowLTkuXSsvIiwiIiwgJGZpbGUpOw0KZWNobyAkZmlsZS4nPC9icj4nOw0KJGZpbGUgPSBzdHJfcmVwbGFjZSgiY29uZmlnIiwiISIsICRmaWxlKTsNCmVjaG8gJGZpbGUuJzwvYnI+JzsNCiR0eHQgPSBiYXNlNjRfZW5jb2RlKGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSk7DQoNCmVjaG8gIjxpbWcgc3JjPSdkYXRhOmltYWdlL2dpZjtiYXNlNjQsIi4kdHh0LiInPjwvaW1nPiI7DQovKg0KICogQ2FuIHlvdSBmaW5kIHRoZSBmbGFnIGZpbGU/DQogKg0KICovDQoNCj8+DQo=

后面又是base64拿去解密

'.$_GET['jpg'].'';
$file = preg_replace("/[^a-zA-Z0-9.]+/","", $file);
echo $file.'
'; $file = str_replace("config","!", $file); echo $file.'
'; $txt = base64_encode(file_get_contents($file)); echo ""; /* * Can you find the flag file? * */ ?>

可以查看index.php的文件内容
发现提示

/*
 * https://blog.csdn.net/FengBanLiuYun/article/details/80616607
 * Date: July 4,2018
 */

文章的时间和提示时间不对应。通过找这个人的其他博客发现
时间对应的
上面的文件为practice.txt.swp
不说别的先构造;其实也不用构造

能直接访问回显出来
下面是要构造这个f1ag!ddctf.php
就要绕过这两个过滤

$file = preg_replace("/[^a-zA-Z0-9.]+/","", $file);
echo $file.'
'; $file = str_replace("config","!", $file); echo $file.'
';

尝试构造f1agconfigddctf.php这样config就能替换成!


因为file_get_contents只会读取文件如果读取变量就会为空
所以我们提交向f1ag!ddctf.php提交一个uid= 就可以了

Web2 WEB 签到题

发现js存在反序列化漏洞

/**
 * Created by PhpStorm.
 * User: didi
 * Date: 2019/1/13
 * Time: 9:05 PM
 */

function auth() {
    $.ajax({
        type: "post",
        url:"http://117.51.158.44/app/Auth.php",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        beforeSend: function (XMLHttpRequest) {
            XMLHttpRequest.setRequestHeader("didictf_username", "");
        },
        success: function (getdata) {
           console.log(getdata);
           if(getdata.data !== '') {
               document.getElementById('auth').innerHTML = getdata.data;
           }
        },error:function(error){
            console.log(error);
        }
    });
}

Web3 Upload-IMG

user:dd@ctf
pass:DD@ctf#000

打开网页是个上传的网站=。=猜测涉及文件上传,二话不说先传。
DDCTF2019-Web Write up_第1张图片
发现传了个git图,他已经变了,已经不是那个git图了变成了个= =单纯的jpg。。。
DDCTF2019-Web Write up_第2张图片
提示说让文件中包含指定字符串phpinfo()。这不是自寻死路到处插入phpinfo。。发现都被过滤了。。去查文件上传的内容
最后在博客中找到了这个项目。就是jpg文件中有个Start of Scan区域

https://github.com/fakhrizulkifli/Defeating-PHP-GD-imagecreatefromjpeg

尝试在图片棕色区域写入PHPINFO()
DDCTF2019-Web Write up_第3张图片
用Winhex工具去搜索FFDADDCTF2019-Web Write up_第4张图片

下面这块应该就是尝试写入phpinfo
DDCTF2019-Web Write up_第5张图片
在这里插入图片描述
没有成功= =(:з」∠)DDCTF2019-Web Write up_第6张图片
重新构造下检查下问题= =发现必须得先上传个正常文件。然后用他过滤完转存的图进行修改就可以达到目的了
DDCTF2019-Web Write up_第7张图片

不写了_(:з」∠)_自闭了被ban了

你可能感兴趣的:(DDCTF)