磐石行动第三周"/>
2023年磐石行动第三周
1、WEB-black
然后发现不可以使用右键,那么直接手动添加view-source:http://
发现step.php页面
发现EDG.php页面,访问一下,发现如下链接
:81/EDG.php?img=353736643331376136343537343637353531366433343364
然后发现img这个参数特别像hex,那么通过大厨进行编码试试
发现两次hex编码和两次base64编码,那么读一下EDG.php的源码
这个地方发下大厨编码有问题,然后通过burp进行编码发现可以,然后通过base64解码得到EDG.php的源码:
<center>
<?php
error_reporting(0);
header('content-type:text/html;charset=utf-8');
include("flag.php");//flag in flag.php
$cmd = $_GET['cmd'];
if (!isset($_GET['img'])) echo '<script language=javascript>window.location.href="EDG.php?img=353736643331376136343537343637353531366433343364"</script>';$file = base64_decode(base64_decode(hex2bin(hex2bin($_GET['img']))));
$file = preg_replace("/[^a-zA-Z0-9.]+/", "", $file);
if (preg_match("/flag/i", $file)) {echo 'ä½ æƒ³è¦flagï¼Ÿè¡Œï¼Œé‚£æˆ‘ç»™ä½ å§~';echo '<script language=javascript>window.location.href="flag.php"</script>';
} else {$txt = base64_encode(file_get_contents($file));echo "<img src='data:image/gif;base64," . $txt . "'></img>";echo "<br>";
}
if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|diff|file|echo|sh|'|\"|`|;|,|\\|xA0|{|}|[|]|-|<|>/i", $cmd)) {echo("forbid ~");echo "<br>";
} else {system($cmd);
}?>
通过测试代码发现file会将除去大小写字母+数字+.的全部字符替换为空
<?php $file = '../EDG.php';
$file = preg_replace("/[^a-zA-Z0-9.]+/", "", $file);
echo $file;?>..EDG.php[Finished in 146ms]
那么就不能通过穿越目录的方式读取文件,同时如果文件名中包含flag,那么就会直接定位到flag.php,而没有flag才能显示文件内容,直接打开flag.php,因为flag是变量导致无法直接查看。
然后可以通过cmd参数进行执行命令,然后通过\
转义的方式绕过字符串匹配进行命令执行
然后直接读取flag.php的内容
得到flag如下:
DASCTF{43763443445912712855519180621268}
2、MISC-pngeasy
010edit打开图片发现报错信息在chunk2,然后发现DAS间隔为2,通过python脚本提取
编写python脚本提取
with open('./pngeasy.png','rb') as f:datas = f.read()begin = 0x437
flag = []
for index in range(begin,len(datas),3):flag.append(datas[index])if flag[-1] == ord('}'):breakprint(bytes(flag).decode())
得到flag如下:
DASCTF{ded7983260b9fda1acffeaf368cec687}
更多推荐
2023年磐石行动第三周
发布评论