1.web21
提示中给了一个压缩包,下载后发现是一个字典。
点击连接进去就是登录页面,但并没有给账号密码,所以直接抓包看一下。
随便输入账号密码进行登录,抓了半天都没有抓到有用户名和密码的包,最后还是用的bp的内嵌浏览器才抓到。
疑似base64编码,所以解码试试看,发现是我们输入的账号密码,并且是账号:密码格式
然后进行爆破,这里我们采用 Custom iterator进行爆破,具体操作可参考Custom iterator的使用
状态码为200即为爆破成功。
我们再使用爆破成功的账号密码,就能得到flag。
2.web22
查看题目:
这里子域名已经失效,所以题目中直接给出了答案。
3.web23
查看题目:
由于这里代码较多,可以直接选择让AI来分析。
if(isset($_GET['token'])){ $token = md5($_GET['token']);
... }
else { highlight_file(__FILE__); }
- 如果用户通过 GET 请求传递了
token
参数,代码会计算该参数的 MD5 哈希值并存储在$token
变量中。如果没有传递token
参数,则使用highlight_file
函数显示当前文件的源代码。
if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){ if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){ echo $flag; } }
这里有两个嵌套的条件判断:
- 第一个条件要求 MD5 哈希值的第 2 个字符、第 15 个字符和第 18 个字符相等。
- 第二个条件要求
(第2个字符的整数值 + 第15个字符的整数值 + 第18个字符) / 第2个字符的整数值
的结果等于 MD5 哈希值的第 32 个字符的整数值。</