ctfshow-萌新web12

题目:

 关键是第二个if语句,是一个正则表达式过滤,涵盖了之前题目的部分答案。

要点:

        因为有config,php过滤所以要对config.php进行过滤。有system和exec过滤所以要换另一个系统命令。有cat所以要更换另一种抓取文件的方式。

 过滤方式:

        对于config.php我们可以对其进行base64编码,为什么是baser64,貌似只是因为比较常用,用别的也可以。

                对于系统命令的过滤我们可以使用另一个系统命令passthru()。

                对于cat的过滤我是用的tac,不过方法不唯一,大家可以看看其他人的博客,也有其他的方法,命令。

知识点:

                因为网站是对config.php过滤,所以我们需要传参的参数是加密后的代码,传参后进行解密。所以base64的解密格式为:base64_decode()。注意的是我们需要给这个代码设置一个变量。

                关于系统命令,我查到的一共有三个分别是:passthru(),system(),exec(),三种方式的用法相同,作用有一点点区别,不过在这个题里没有任何问题。

                关于抓取文件内容有cat tac rec

                cat是从第一行开始抓到最后一行,tac是从最后一行抓到第一行,rec是将抓到的内容倒置。

答案:

        前戏说完了,下面是整体,将代码整理好后是这个样子:

?c=$a =base64_decode('Y29uZmlnLnBocA==');passthru("tac $a");

编码和调用系统函数的位置不能换,因为tac抓取时需要用到变量a。

传参后得到flag:

后记: 

        再web12之前有的题是没有过滤php的,但不能使用php的伪协议,有没有大佬告诉我为什么?

              

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值