记一次简简单单CTF

admin 2024年8月19日10:11:54评论24 views字数 1372阅读4分34秒阅读模式

小水一篇,也记录一下对笔者而言难得才做一次的CTF。

题目

简简单单的ping注入。

记一次简简单单CTF

尝试命令执行

尝试读文件

后台执行ping命令,很容易想到拼接命令进行RCE。
尝试使用1.1.1.1|ls进行注入,成功:

记一次简简单单CTF

再试一些常用命令:

记一次简简单单CTF

可以看到只有cat被拦截了,但对于这种类型的拦截我一开始想的是大小写,但转念一想bash哪来的大小写绕过。不过读文件的函数肯定绝不止cat一个,换用其它参数试试。

记一次简简单单CTF

试了几个less/tail/more/uniq,居然都不拦,看来这道ctf还是比较简单。不过这里我犯了个错,这个错误导致我后面花了大概半个小时走弯路......

黑色幽灵

既然能读文件,那肯定先读一读flag。不过我对这道题的源码有点兴趣,还是决定先读读源码。
使用1.1.1.1|more index.php,尝试读取源码,失败:

记一次简简单单CTF

这是拦截了啥?想半天没想明白,平常做的题太少,现在第一时间怀疑的竟然是拦截了cat|uniq|more|less [^ ]{1,})。
那难道要继续找不被拦截的命令?想着试一下其它命令,居然都被拦,最后敲了个不是命令的字符串都拦截。
这,这不对吧,难道拦的是([a-z]{1,} [^ ]{1,})?于是我终于恍然大悟——拦的是空格啊- -。

空格绕过

之前写shell的时候饶过一次空格,虽然没成功。就是这次:
这次按照之前的方法绕过,试一试换行啥的,也是轻轻松松(%09解码之后也行,我偷懒了):
记一次简简单单CTF

这下看一看源码:

记一次简简单单CTF
<?php
error_reporting(0);
echo "POST my ip and I will ping it! or ping myselfn";
echo "Note: you should base64 ip!";

$target = isset($_REQUEST['ip']) ? base64_decode($_REQUEST['ip']) : '127.0.0.1';

$blacklist = [' ', '&', ';', 'cat', 'flag', 'bin', 'ca?'];
foreach ($blacklist as $blackitem) {
    if (preg_match('/' . $blackitem . '/m', $target)) {
        die('Hacker!');
    }
}

$cmd = shell_exec( 'ping -c 4 ' . $target );

echo "<pre>$cmd</pre>";

?></pre>

一共就ban了空格、cat和flag这三个比较重要的内容,题目远比我想象中的要简单。

字符串绕过

到这一步其实已经有很多很多办法了,但是人总爱钻牛角尖研究自最不擅长的部分。
这里我又犯了个错误,一直想用base64解码来绕过flag的拦截,不过靶机上貌似没有base64这个命令,总执行不成功。
还好快下班了,想下班的心情阻止我在歪门邪道上一去不复返,直接使用常见的几个绕过手段,flag:

记一次简简单单CTF

成功flag。

这里前两个fl*和?lag利用linux的空余补全(看上去并未成功),flag利用转义符,fl$*ag和fl$@g利用内置的两个空变量,fl''ag则是利用linux解析时会去掉单引号的特性。

原文始发于微信公众号(重生之成为赛博女保安):记一次简简单单CTF

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月19日10:11:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次简简单单CTFhttp://cn-sec.com/archives/3079008.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息