合天网安《Weekly CTF》第四周

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这个cookie

	if (urldecode($username) === "admin" && urldecode($password) != "admin") { 
 	//判断username解码之后是不是等于admin,password不能等于admin,于是可以得到我们登陆时输入的uname和pwd需要进行url编码一次
		if ($_ COOKIE["check"] === base64_ encode($secret) . urldecode($username . $password))){
		//如果check的值满足这个条件,获得flag
			echo "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
得到ahash的值
base64解码
得到secret的值是88
于是构造check的值,88进行base64编码之后加上username和password的url解码值
88的base64编码
构造的check值
这里输入的用户名是%61%64%6d%69%6e,密码是%61
构造check=ODg=admina,发包,得到flag{welcome_to_htlab}
flag
PS:提交flag的时候慢了一步,没有领到合天的7天会员,还是有点小伤心😭
题目来源:https://exp.nslab.io/codes,感谢合天网安实验室提供的题目!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值