网站seo流程,wordpress更换头像,订做网站和app,网站中主色调解题流程
0、打开网页 发现其内有一个链接 1、点击链接#xff0c;查看PHP源代码
?php
if(isset($_GET[v1]) isset($_GET[v2]) isset($_GET[v3])){ // 检测以GET方式传入的三个参数 v1、v2、v3$v1 $_GET[v1]; // 变量v1等于传入的参数v1$v2 …解题流程
0、打开网页 发现其内有一个链接 1、点击链接查看PHP源代码
?php
if(isset($_GET[v1]) isset($_GET[v2]) isset($_GET[v3])){ // 检测以GET方式传入的三个参数 v1、v2、v3$v1 $_GET[v1]; // 变量v1等于传入的参数v1$v2 $_GET[v2]; // 变量v2等于传入的参数v2$v3 $_GET[v3]; // 变量v3等于传入的参数v3if($v1 ! $v2 md5($v1) md5($v2)){ // v1不等于v2并且MD5加密后的v1等于v2典型的MD5碰撞随意在网上搜索两个值就可以if(!strcmp($v3, $flag)){ // 这里是用来比较字符串但是查了一下这个函数当接受到不符合字符串类型的参数就会发生错误并返回0比如数组echo $flag;}}
}
?2、代码审计构造payload 我们需要构造三个参数v1v2v3其内v1和v2需要值不同且md5的值相同利用md5函数的特性如果使用一个不可md5的数据类型传入的话那么md5函数将返回false这个也是返回值题目要求的是md5函数的返回值相等所以就可以用两个值不同但不可md5的数据类型传入即可
这里我们使用数组进行绕过令v1[]1, v2[]2
继续分析第二个是strcmp函数需要v3和flag的值相同才返回flag的值我们依旧利用函数特性strcmp函数如果出错那么它的返回值也会是0和字符串相等时返回值一致
依旧使用数组绕过令v3[]3因为strcmp接收到不符合字符串类型的参数会发生错误
3、上传最后payloadhttp://114.67.246.176:16109/?v1[]1,v2[]2v3[]3 或者 得到