[BUUCTF]HCTF 2018 WarmUp wp
2020-06-02 06:39
597 查看
打开靶机后是一张滑稽的图片,按照惯例,我们F12看看源码,发现有提示:source.php
根据提示发现以下代码:
<?php highlight_file(__FILE__); class emmm { public static function checkFile(&$page) { $whitelist = ["source"=>"source.php","hint"=>"hint.php"];//白名单,并且发现hint.php if (! isset($page) || !is_string($page)) { echo "you can't see it"; return false; } if (in_array($page, $whitelist)) { return true; }//in_array() 函数搜索数组中是否存在指定的值,即数组whitelist中是否能匹配$page $_page = mb_substr( $page, 0, mb_strpos($page . '?', '?')//返回$page中从第一次出现“?”的位置 );//$_page为从$page中0位置开始截取长度为mb_strpos($page . '?', '?')的字符串 if (in_array($_page, $whitelist)) { return true; }//如果$_page能和白名单元素匹配返回true $_page = urldecode($page);//URL解码 $_page = mb_substr( $_page, 0, mb_strpos($_page . '?', '?') ); if (in_array($_page, $whitelist)) { return true; } echo "you can't see it"; return false; } } if (! empty($_REQUEST['file']) && is_string($_REQUEST['file']) && emmm::checkFile($_REQUEST['file']) ) { include $_REQUEST['file']; exit; } else { echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />"; } ?>
checkfile函数的分析我已经在代码中加了注释,大家可以参考。
总的来说就是要满足3条件:
- flie不能为空
- file必须是字符串类型
- 必须通过checkfile函数检验
而checkfile函数中有很多if语句,只要有一个返回值就能通过,这里我们只能满足截取的那个if语句才能通过。
构造参数file的值url解码后把“?”之前的内容和白名单匹配,全部成功即可拿到flag,但是我们还缺少file的值,别忘了代码中出现了一个hint.php
好的我们知道了flag文件在ffffllllaaaagggg中,开始构造payload。
因为他会进行一次url解码,而且服务器也会进行一次url解码,所以我们把“?”编码两次为%253f,构造payload=?file=source.php?../ffffllllaaaagggg
但是并没有出现flag,想了想可能存在多级目录,ffffllllaaaagggg每个字母都出现了四次,试一试再加四次…/,果然最终出现了flag
最终的payload:?file=source.php?../…/…/…/…/ffffllllaaaagggg
ps:若有不足之处,欢迎大佬们及时斧正,感谢您的观看!
相关文章推荐
- BUUCTF__[HCTF 2018]WarmUp_题解
- BUUCTF [HCTF 2018] WarmUp
- hgame-2018 CTFwp(杭电信安)week1
- buuoj--[HCTF 2018]WarmUp
- [HCTF 2018]WarmUp
- BUUCTF__[HCTF 2018]admin_题解
- hgame-2018 CTFwp(杭电信安)week2
- hgame-2018 CTFwp(杭电信安)week3
- HITCTF 2018 wp [我真是菜鸟]
- CTF-后台登陆 WP
- MRCTF WP
- CTF实验吧 这就是一个坑wp (明文攻击)
- [wp] HITB CTF 2017 website
- BUUCTF Crypto [WUSTCTF2020]B@se wp
- 攻防世界WP-reverse-school-ctf-winter-2015-simple-check-100
- WordPress Van Ons WP GDPR Compliance插件任意代码执行漏洞(CVE-2018-19207)
- 寒假第二周CTFwp——合天CTF
- 攻防世界WP-reverse-alexctf-2017-re2-cpp-is-awesome
- buuctf [ZJCTF 2019]Login
- 攻防世界WP-reverse-tinyctf-2014-tt3441810