Bugku:web矛盾

94 篇文章 2 订阅
32 篇文章 2 订阅

继续web学习,打开网址链接。

 

最开心的事情莫过于直接看到PHP代码因为不用去抓?

 

 

可以看到意思是num不是numeric并且num需要等于1的时候才会展示出flag,这就是题目矛盾的来源。

 

所以要怎么样才能用get的方式直接输入1而不是1这个数字呢?

 

竟然有很多鸡贼方法!!!!!!!!

 

比如

 

这个网上所谓的科学计数法,可是想不通,1*e*0.1,它不等于1啊?!啊?!您在逗我,这样都能行。

 

所以又尝试了各种姿势,比如:

 

 

1xx,1xxx,1xxxxx,你XX?!

 

 

符号:%00,这是经典的文件上传截断,截断是很神奇的东西。

例:filename=test.php%00.txt

常见:

1.上传时路径可控,使用00截断;

2.文件下载时,00截断绕过白名单检查;

3.文件包含时,00截断后面限制(主要是本地包含时);

4.其它与文件操作有关的地方都可能使用00截断。

小小题目,知识点是很多的。另一篇博主的说法是%00是被服务器解码成了0x00才发挥了截断作用。

 

原理:系统在对文件名读取时,如果遇到0x00,就会认为读取已结束。

但要注意是文件的16进制内容里的00,而不是文件名中的00 !!!就是说系统是按16进制读取文件(或者说二进制),遇到ascii码为零的位置就停止,而这个ascii码为零的位置在16进制中是00,用0x开头表示16进制,也就是所说的0x00截断。

这个知识点还需要在后续文件截断中继续实践,任重而道远啊。

 

可是又发现了:

 

 

而且1'什么的都可以,所以......1后面加什么都可以!解码出来都是1!

 

欢迎大家关注我的微信公众号,一起学习,互相督促,一起玩耍呀!!!

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酥酥糖学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值