第十三题——[RoarCTF 2019]Easy Calc

题目地址:https://buuoj.cn/challenges

解题思路

第一步:进入题目,发现有一个输入栏叫我们输入计算表达式,按f12查看提示,看到一个calc.php页面且参数为num,且calc设置了WAF保护措施。

在这里插入图片描述
在这里插入图片描述

第二步:访问calc.php页面发现WAF安全规则以及参数检测

  1. 可以看到calc.php页面对num参数进行了规定,不允许参入空格以及其他的特殊字符
    在这里插入图片描述

  2. 让num传入数字,在页面上返回数字
    在这里插入图片描述

  3. 让num传入非数字,发现WAF限制
    在这里插入图片描述

第三步:绕过WAF

WAF检测的是"num"参数,若我们在num参数前添加空格,让”num“变成” num“,那就可以绕过WAF,而php在接受参数时会将空格删除,将” num“转变成”num“进行接收。

在这里插入图片描述

第四步:绕过num限制

php对num参数进行了限制,不允许携带空格以及一些特殊字符,可以通过chr()函数携带ASCII码进行绕过。
在这里插入图片描述

第五步:扫描目录

使用函数scandir()获取根目录"/"下的所有文件名,并使用print_r将其打印出来,URL构造? num=print_r(scandir(chr(47))),发现flag所在位置:f1agg
在这里插入图片描述

scandir用法介绍

第六步:获取flag

使用函数file_get_contents()将f1agg文件读入字符串中并用print_r打印出来,
URL为? num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
flag为:flag{1b2d35a8-d683-4286-a98f-03eacbfd0055}
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值