0
点赞
收藏
分享

微信扫一扫

VulnCTF的练习教室v1.0-------WEB-----------第四题【绕过and后面的is_numeric()】


====================================

个人收获:

1.在php中赋值运算比AND和OR高,但是低于&&和||,利用这个特性可以绕过

 

 

=====================================

 

题目:

 

VulnCTF的练习教室v1.0-------WEB-----------第四题【绕过and后面的is_numeric()】_赋值

查看下源代码

VulnCTF的练习教室v1.0-------WEB-----------第四题【绕过and后面的is_numeric()】_赋值_02

然后我们传入a和b,直接得到flag

VulnCTF的练习教室v1.0-------WEB-----------第四题【绕过and后面的is_numeric()】_赋值_03

 

这题就是送分题,主要看下这题的知识点吧

========================================================================================= 

贴下题目的原代码

VulnCTF的练习教室v1.0-------WEB-----------第四题【绕过and后面的is_numeric()】_优先级_04

 

问题主要出现在 and上

由于同时出现了赋值和and,出现了PHP解析优先级的问题,绕过。

VulnCTF的练习教室v1.0-------WEB-----------第四题【绕过and后面的is_numeric()】_优先级_05

因为题目的代码里面,同时出现了赋值和and,所以当我们访问以下URL的时候

VulnCTF的练习教室v1.0-------WEB-----------第四题【绕过and后面的is_numeric()】_赋值_06

由于赋值优先级高,所以先把is_numeric(a)赋值给了c然后在进行and

所以下面的if调整为真输出flag

 

如果换成

VulnCTF的练习教室v1.0-------WEB-----------第四题【绕过and后面的is_numeric()】_赋值_07

就不行了因为a不是数值,返还给c的值是假的所以跳转也不成功

 

举报

相关推荐

0 条评论