实验室每日一题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