DDCTF2019-web1滴~

Web

1、滴~

DDCTF2019-web1滴~_第1张图片

 url中这一串字符串经过两次base64解码,一次16进制解码,得到flag.jpg,看来这是一个文件的读取,而且从源码可以看出,读取的结果是base64码,尝试读取index.php的源码:
传递jpg=TmprMlJUWTBOalUzT0RKRk56QTJPRGN3,把源码中的base64解码得到index.php的源码:
 

'.$_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? * */ ?>

可以看出了一个正则一个replace替换,然而我们并不知道flag所在文件名,线索在注释中的博客里
找出写文章的博主在July 4,2018这一天的博文,是一个关于vim的:
DDCTF2019-web1滴~_第2张图片

 有点坑的地方就是用到的文件是practice.txt.swp(注意前面没有点),按照前面读取index.php的方法读取这个文件,仍把源码中的base64解码得到:f1ag!ddctf.php

根据前面的index.php的源码的过滤,构造f1agconfigddctf.php经过加密后传参,码中的base64解码得:
 

content为hello文件的内容,且内容为空,f1ag!ddctf.php传参uid=就拿到flag了
DDCTF2019-web1滴~_第3张图片

你可能感兴趣的:(赛题复现,CTF学习)