2026/6/11 11:26:33
网站建设
项目流程
《网站建设》项目实训报告,wordpress转phpcms,asp.net 网站管理工具 安全,seo网页的基础知识过晚提交任务原因及解释前几天甲流了#xff0c;请了一段时间巨长的假#xff0c;现在正在追赶进度重新准备与环境搭建准备工具#xff1a;edge浏览器环境搭建#xff1a;本地小皮面板PHP靶场一?phpinclude(flag.php);
highlight_file(__FILE__);if (isse…过晚提交任务原因及解释前几天甲流了请了一段时间巨长的假现在正在追赶进度重新准备与环境搭建准备工具edge浏览器环境搭建本地小皮面板PHP靶场一?php include(flag.php); highlight_file(__FILE__); if (isset($_GET[num])) { $num $_GET[num]; if (preg_match(/[0-9]/, $num)) { die(no no no!); } if (intval($num)) { echo $flag; } }定义了一个num变量用来传递参数//因此只需访问这个地址即可取得flag http://localhost/?num[]a //flag为flag{You have successfully completed web89!}PHP靶场二?php include(flag.php); highlight_file(__FILE__); if (isset($_GET[num])) { $num $_GET[num]; if ($num 4476) { die(no no no!); } if (intval($num, 0) 4476) { echo $flag; } else { echo intval($num, 0); } }这个也是必须通过GET方式传入num参数isset($_GET[num])但是num不能与字符串4476严格相等要求值和类型都完全一致否则执行die且intval($num, 0)的结果必须严格等于 4476所以可以绕过严格比较方法如下数字后接非数字字符http://localhost/?num4476a http://localhost/?num4476%20 http://localhost/?num4476x http://localhost/?num4476\n //等等其他进制表示法十六八http://localhost/?num0x117C http://localhost/?num010574 //等等得到flagflag{You have successfully completed web90!}PHP靶场三?php show_source(__FILE__); include(flag.php); $a$_GET[cmd]; if(preg_match(/^php$/im, $a)){ if(preg_match(/^php$/i, $a)){ echo hacker; } else{ echo $flag; } } else{ echo nonononono; }代码逻辑接收 GET 参数cmd第一个正则匹配preg_match(/^php$/im, $a)匹配成功则进入内部判断否则输出nonononono内部第二个正则匹配preg_match(/^php$/i, $a)匹配成功输出hacker否则输出flag。目标如下需要构造cmd参数满足第一个正则/^php$/im匹配成功进入内部判断第二个正则/^php$/i匹配失败输出 flag。绕过方法在php前加换行符http://localhost/?cmd%0aphp在php后加换行符任意字符http://localhost/?cmdphp%0ab http://localhost/?cmdphp%0ajj http://localhost/?cmdphp%0asuhs //等等加多个换行符http://localhost/?cmdphp%0a%0a得到flagflag{You have successfully completed web91!}