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

2.14学习记录

Web

flag直接读取不就行了?

代码审计:

<?php
highlight_file('index.php');
# 我把flag藏在一个secret文件夹里面了,所以要学会遍历啊~
error_reporting(0);
$J1ng = $_POST['J'];
$Hong = $_POST['H'];
$Keng = $_GET['K'];
$Wang = $_GET['W'];
$dir = new $Keng($Wang);
foreach($dir as $f) {echo($f . '<br>');
}
echo new $J1ng($Hong);
?>

题目提示flag藏在secret文件夹里面,要学会遍历,先看明白四个参数是干什么的
K、W是通过POST方式请求并且是通过类的方式创建了一个对象dir
K:可以通过查询php文档找遍历的类。我找到的是DirectoryIterator这个类,所以K传入的就是这个类。
W:一般就先访问根目录 传入 ”/“在这里插入图片描述

根据提示 说flag在secret文件夹里面,所以就直接http://challenge.basectf.fun:29227/?K=DirectoryIterator&W=/secret
可以找到flag文件;从KW中只能得到flag的路径,读取还是需要查询PHP中读取文件的类是什么。经查询可以得到是SplFileObject类。再通过传入刚刚得到的flag文件的路径可以读取flag文件。在这里插入图片描述得到flag的位置,在元素选项中找到flag在这里插入图片描述

misc

watermark

根据名字,不难猜出是水印有关的题目
下载附件后有三个文件,第一个txt文档,根据提示,使用在线工具在这里插入图片描述得到了key1,
第二张图片。使用watermark盲水印工具查看第三个压缩包的密码就是key1和key2,解压后得到txt在里面搜索isctf在这里插入图片描述发现flag

crypto

babyrsa

根据名字就能看出来子是rsa加密
题目:

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
"""

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

BasePlus

拿到附件先查壳,发现没壳在这里插入图片描述用ida打开找到主调函数

int __fastcall main(int argc, const char **argv, const char **envp)
{char Str1[2032]; // [rsp+20h] [rbp-FF8h] BYREFchar v5[2056]; // [rsp+810h] [rbp-808h] BYREF_main();printf("Try typing something:");scanf("%s", v5);Encode(v5, Str1);if ( !strcmp(Str1, "lvfzBiZiOw7<lhF8dDOfEbmI]i@bdcZfEc^z>aD!") )printf("Wow, you actually got the flag");elseprintf("Maybe you need to try again?");return 0;

发现对字符串进行了encode处理在这里插入图片描述这里发现对字符串进行了异或处理,再向上去发掘

  v4 = v17;v5 = 4i64;v6 = 0i64;v7 = 0;do{v15 = 0;v16 = 0;if ( v3 > v7 ){v10 = v7 + 1;v11 = 1i64;do{v7 = v10;*(&v14 + v11) = a1[v10 - 1];v12 = (int)v11 <= 2;v13 = v3 > (int)v10++;++v11;}while ( v13 && v12 );}v17[0] = Secret[(unsigned __int8)v15 >> 2];v17[1] = Secret[(HIBYTE(v15) >> 4) | (16 * (_BYTE)v15) & 0x30];v17[2] = Secret[(v16 >> 6) | (4 * HIBYTE(v15)) & 0x3C];v17[3] = Secret[v16 & 0x3F];v8 = v6;do{

这一坨用ai分析了一下是base64加密,而且是换表的,根据secret数组进行加密,那么就可以分析出思路:先将字符异或回去,再根据secret数组进行base64在这里插入图片描述

pwn

Ret2text

一道栈溢出,用ida找一下主调函数在这里插入图片描述这道题不需要远程执行,只需要在本地打进去就行了
exp:

from pwn import * file = process('./pwn1')
add = 0x04011BB
playload = b'a'*0x20+b'b'*0x08+p64(add)file.sendline(playload)
file.interactive()

打通后就可以得到flag了

相关文章:

2.14学习记录

Web flag直接读取不就行了&#xff1f; 代码审计&#xff1a; <?php highlight_file(index.php); # 我把flag藏在一个secret文件夹里面了&#xff0c;所以要学会遍历啊~ error_reporting(0); $J1ng $_POST[J]; $Hong $_POST[H]; $Keng $_GET[K]; $Wang $_GET[W]; $d…...

xpath定位--鼠标悬停显示的按钮

UI自动化定位界面元素的过程中&#xff0c;会遇到鼠标悬停才会显示的按钮&#xff0c;鼠标移开就不显示了&#xff0c;无法通过点击它直接定位到元素位置 搜索到这篇文档&#xff0c;办法很好用&#xff0c;特此记录下&#xff1a;chrome调试鼠标悬停后出现的元素_控制台元素调…...

鸿蒙Harmony打包脚本使用整理

最近整理鸿蒙打包相关事宜&#xff0c;遇到很多文档描述不清晰的问题&#xff0c;好在都通过鸿蒙团队的技术支持解决掉了。这里整理一下。 command-line-tools的命令官网基本都有&#xff0c;这里整理几个常用的&#xff0c;还有就是遇到的问题。 hvigorw位置&#xff1a;/comm…...

【C语言】C语言 停车场管理系统的设计与实现(源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设…...

在Autonomous DB中创建训练数据集

在Autonomous DB中创建训练数据集 概述背景步骤解析1. 定义公司术语表2. 使用SQL将数据转换为JSON格式3. 使用SPool命令将SQL查询结果输出为JSON文件4. 查看生成的JSON文件 结果示例结论 概述 在机器学习中&#xff0c;构建高质量的训练数据集是模型成功的关键&#xff0c;尤其…...

Adapting to Length Shift: FlexiLength Network for Trajectory Prediction

概要 轨迹预测在各种应用中发挥着重要作用&#xff0c;包括自动驾驶、机器人技术和场景理解。现有方法通常采用标准化的输入时长&#xff0c;集中于开发紧凑神经网络&#xff0c;以提高在公共数据集上的预测精度。然而&#xff0c;当这些模型在不同观测长度下进行评估时&#…...

张量循环运算:内存溢出原因及解决

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 内存溢出解决方法致谢 内存溢出 使用AlexNet遍历大量图像进行指标运算&#xff08;LP…...

【Qt】:概述(下载安装、认识 QT Creator)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Qt 目录 一&#xff1a;&#x1f525; 介绍 &#x1f98b; 什么是 QT&#x1f98b; QT 发展史&#x1f98b; Qt版本&#x1f98b; QT 优点 一&#xff1a;&#x1f525; 搭建Qt开发环境 &#x1f9…...

11、《Web开发性能优化:静态资源处理与缓存控制深度解析》

Web开发性能优化&#xff1a;静态资源处理与缓存控制深度解析 一、性能优化的核心战场&#xff1a;静态资源处理 现代Web应用静态资源体积占比普遍超过70%&#xff0c;以典型Vue项目为例&#xff1a; dist/ ├─ css/ # 38% 体积 ├─ js/ # 45% 体积 └─ img…...

【Linux】多线程 -> 从线程概念到线程控制

线程概念 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列”。一切进程至少都有一个执行线程。线程在进程内部运行&#xff0c;本质是在进程地址空间内运行。在Linux系统中&#xff0c;在CPU眼…...

用什么办法能实现ubuntu里面运行的自己开发的python程序能自动升级。

要实现Ubuntu中自己开发的Python程序自动升级&#xff0c;可以通过以下几种方式&#xff1a; 1. 使用 Git 仓库 定时任务 如果你的Python程序托管在Git仓库中&#xff0c;可以通过定时拉取最新代码来实现自动升级。 步骤&#xff1a; 确保Python程序在Git仓库中。在Ubuntu上…...

java处理pgsql的text[]类型数据问题

背景 公司要求使用磐维数据库&#xff0c;于是去了解了这个是基于PostgreSQL构建的&#xff0c;在使用时有场景一条图片数据中可以投放到不同的页面&#xff0c;由于简化设计就放在数组中&#xff0c;于是使用了text[]类型存储&#xff1b;表结构 #这是一个简化版表结构&…...

LeetCode 热门100题-字母异位词分组

2.字母异位词分组 题目描述&#xff1a; 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan&q…...

耐张线夹压接图片智能识别

目录 一、图片压接部位定位1、图像准备2、人工标注3、训练4、推理5、UI界面 压接状态智能识别 一、图片压接部位定位 &#xff0c;往往X射线照片是一个大图&#xff0c;进行图片压接部位定位目的是先找到需识别的部位&#xff0c;再进行识别时可排除其他图像部位的干扰&#x…...

ADC 的音频实验,无线收发模块( nRF24L01)

nRF24L01 采用 QFN20 封装&#xff0c;有 20 个引脚&#xff0c;以下是各引脚的详细介绍&#xff1a; 1. 电源引脚 ◦ VDD&#xff1a;电源输入端&#xff0c;一般接 3V 电源&#xff0c;为芯片提供工作电压&#xff0c;供电电压范围为 1.9V&#xff5e;3.6V。 ◦ VSS&#xf…...

企业SSL 证书管理指南

文章从以下几个部分展开 SSL证书的用途和使用场景SSL证书的申请类型和实现方式SSL证书的管理SSL证书的续签 一、SSL 证书的用途和使用场景 1.1 为什么要使用 SSL 证书&#xff1f; 1. 数据安全 &#x1f6e1;️- 在 HTTP 传输中&#xff0c;TCP 包可以被截获&#xff0c;攻…...

Python Pandas(7):Pandas 数据清洗

数据清洗是对一些没有用的数据进行处理的过程。很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况&#xff0c;如果要使数据分析更加准确&#xff0c;就需要对这些没有用的数据进行处理。数据清洗与预处理的常见步骤&#xff1a; 缺失值处理&#xff1a;识别并…...

南京观海微电子----整流滤波电路实用

01 变压电路 通常直流稳压电源使用电源变压器来改变输入到后级电路的电压。电源变压器由初级绕组、次级绕组和铁芯组成。初级绕组用来输入电源交流电压&#xff0c;次级绕组输出所需要的交流电压。通俗的说&#xff0c;电源变压器是一种电→磁→电转换器件。即初级的交流电转化…...

【python】向Jira测试计划下,附件中增加html测试报告

【python】连接Jira获取token以及jira对象 # 往 jira 测试计划下面&#xff0c;上传测试结果html def put_jira_file(plain_id):# 配置连接jiraconn ConnJira()jira conn.jira_login()[2]path jira.issue(O45- plain_id)attachments_dir os.path.abspath(..) \\test_API…...

探索ChatGPT背后的前端黑科技

由于图片和格式解析问题&#xff0c;可前往 阅读原文 在人工智能与互联网技术飞速发展的今天&#xff0c;像ChatGPT这样的智能对话系统已经成为科技领域的焦点。它不仅能够进行自然流畅的对话&#xff0c;还能以多种格式展示内容&#xff0c;为用户带来高效且丰富的交互体验。然…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...