WriteUp1
题目信息

解题思路
打开页面,

无任何有效信息,点击try again不会跳转其他页面,第二个连接是个广告
直接打开kali,扫描页面,看是否有隐藏文件夹
用dirsearch -u 命令

看到有一个颜色不同的页面robots.txt
访问robots.txt

看到有文件resusl.php文件,访问resusl.php

提示我不是管理员,且以get方式获取一个名为x的变量
直接在url中给x赋值为admin即可

得到flag

使用工具
Kali
dirsearch
Flag
flag{803e969b0700474c740ef52654602f56}
总结
通过本题学到:
robots协议
WriteUp2
题目信息

解题思路
打开页面,

查看源代码

点击code.txt

php
<?php
if(isset($_GET['v1']) && isset($_GET['v2']) && isset($_GET['v3'])){ # 判断 URL 上 ? 后面这种 GET 传递的查询参数,v1 和 v2 和 v3 都得有值才进入这个 if 判断体里执行
$v1 = $_GET['v1']; # 提取 v1 的值
$v2 = $_GET['v2']; # 提取 v2 的值
$v3 = $_GET['v3']; # 提取 v3 的值
if($v1 != $v2 && md5($v1) == md5($v2)){ # 判断 v1 和 v2 的值不能相当,但是 hash 值弱判断得相等(前面做过类似的,有 2 个固定的值翻翻)
if(!strcmp($v3, $flag)){ # strcmp 是 PHP 中的一个字符串比较函数,比较 2 个字符串是否相等:
# 情况1:$v3 和 $flag 完全相同包括字符顺序和大小写,则返回 0(才能进入因为前面有个 !), !0 才是真
# 情况2:$v3 大于 $flag,则返回正数
# 情况3:$v3 小于 $flag,则返回负数
echo $flag;
}
}
}
?>
使两个if里的条件为true即可
v1赋值为MMHUWUV
v2赋值为NOOPCJF
因为strcmp 比较数组时返回null
v3[]=1
在url中传递三个参数即可

得到flag

Flag
flag{2a706404c7058ebe934e4b7255801421}
总结
通过本题学到:
知识点1:当 strcmp 比较数组类型时,会返回 null
知识点2:url?v3[]=666, 这种格式会让 PHP 把参数名和值转换成数组类型,$v3=['666']。
而 url?v3=[666] 这种格式会让 PHP 把参数名和值设置成 "[]" 左右中括号的字符串,不是数组,$v3="['666']"