菜狗杯---web(四)

化零为整

看到题目应该也是一个提示,那么我们先来看一下给的php代码:

 我们肯定要让result的值为“大牛”才能拿到flag,那么在代码中有几点:

  • 首先是一个for循环,循环次数是count($_GET),也就是get中的传入的变量数量;
  • 第一个if语句中的strlen()函数就是要求每个变量的值,其字节长度都不能超过1,否则程序就会被终结;
  • else中的语句就是将每次的参数和原来的result变量进行拼接。

在php中值的拼接可以用“+”来拼接,但是变量和变量之间,要用 “.”  拼接。

那我们通过题目的提示也可以想到应该是每个参数传递的一个值组成“大牛”。

那么因为是GET方式传递参数,首先我们需要知道正常字母和数字都不编码,中文的url编码是占用3个字节,“大牛”也就是6个字节:

 那么我们的payload就可以设置为:

?1=%E5&2=%A4&3=%A7&4=%E7&5=%89&6=%9B

成功拿到flag:

无一幸免

看到题目感觉意思比较简单明了,只要get传入的参数“0”为真,也就是存在,array[]数组为真(存在)的时候,得到falg,那我们就需要将变量“0”的值传入就行了:

传说之下 

打开是个游戏,玩一下试试,玩完发现也没什么包交互,估计就是在前端找问题了;F12打开开发者工具,发现控制台里有提示:

   

 这意思就是让我得玩到2077分呗,那得玩到哪辈子,先试试直接改分数吧:

 发现并不管用,可能是我改的地方不对,于是打开调试器查看源代码,先ctrl+F全局搜索一下“score”  :

 找到了吃果子加一分的这行代码,既然没能直接改分,那我们就改成吃一个加2077分。要改js代码的话,先在这行下个断点(点击275即可),然后在控制台中输入更改后的代码:

 然后在调试器中点击继续,吃个果子,就已经到分数了,游戏结束之后就能看到flag了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值