Check your source code
题目介绍
打开靶机,进步网站,是一个登陆框
首先,根据题名的提示,f12,发现存在source.txt
打开source.txt,出现源码
对源码进行分析
<?php
$flag = "XXXXXXXXXXXX";
$secret = "xx";if(!isset($_ POST["username"]) || !isset($_ POST[" password"]){
exit(); //验证传了username和password没
}
$username = $_ POST["username"];
$password = $_ POST["password"]; //赋值
if (!empty($_ COOKIE["check"])) { //判断有没有传check这个cookieif (urldecode($username) === "admin" && urldecode($password) != "admin") { //判断username解码之后是不是等于admin,password不能等于admin,于是可以得到我们登陆时输入的uname和pwd需要进行url编码一次if ($_ COOKIE["check"] === base64_ encode($secret) . urldecode($username . $password))){//如果check的值满足这个条件,获得flagecho "Login successful.\n" ;die ("The flag is ". $flag); .else {die ( "重新检查下你的cookie吧!");}else {die ("你是不是管理员心里没点数吗?");}
}
setcookie("ahash", base64_ encode($secret . urldecode(" admin" . " admin")), time() + (60 * 60 * 24 * 7));
//设置ahash这个cookie的值
?>
分析完之后,来进行登录,看一下ahash的值,去获得secret的值,然后去构造check的值,获得flag
得到secret的值是88
于是构造check的值,88进行base64编码之后加上username和password的url解码值
这里输入的用户名是%61%64%6d%69%6e,密码是%61
构造check=ODg=admina,发包,得到flag{welcome_to_htlab}
PS:提交flag的时候慢了一步,没有领到合天的7天会员,还是有点小伤心😭
题目来源:https://exp.nslab.io/codes,感谢合天网安实验室提供的题目!