实验室每日一题wp

分析代码

 

 

 需要了解定义变量以及get传参方式,php语法

is_numeric
(PHP 4, PHP 5, PHP 7)
is_numeric — 检测变量是否为数字或数字字符串

intval
(PHP 4, PHP 5, PHP 7)
intval — 获取变量的整数值

因此,get传参 lph=520

跳转

 

 

 可以看到传参方式为post,使用hackbar工具,进行提交

第一步是 要使得一个变量值等于212 且不是数字,明显是矛盾的,不过通过传递一个弱类型的变量就能出来。构造出 payload,

传入szp=212%0a即可绕过第一步,这里考察的" =="弱类型的绕过,以及传入值矛盾时的处理方法。

 

第二步 hxd=什么,根据提示等于100000000

 

第三步 可以根据需求构造出 payload(post方式):

 szp=212%0a&&hxd=100000000

 

 

 

 ps:好像非预期了hhh坐等出题人预期解~

 

小结:

"=="绕过

php中有两种比较符号
=== 会同时比较字符串的值和类型
== 会先将字符串换成相同类型,再作比较,属于弱类型比较
== 对于所有0e开头的都为相等

is_numeric() 判断变量是否为数字或数字字符串

is_numeric() 函数会判断如果是数字和数字字符串则返回 TRUE,否则返回 FALSE,且php中弱类型比较时,会使('1234a' == 1234)为真,或者'12345%00',该函数还可能造成sql注入,例如将‘1 or 1'转换为16进制形式,再传参,就可以造成sql注入

 

完结~撒花~

 

参考博客:https://blog.csdn.net/qq_42967398/article/details/107372765

其他的语法参考 PHP手册

 

posted @ 2020-12-02 22:49  Alanpipi*  阅读(90)  评论(0编辑  收藏  举报