PWN Test_your_nc Write UP
目录
PWN 00
解题过程
总结归纳
PWN 01
解题过程
总结归纳
PWN 02
解题过程
总结归纳
PWN 03
解题过程
总结归纳
PWN 04
解题过程
总结归纳
CTF PWN 开始! 冲就完了
PWN 00
解题过程
ssh远程链连接
ssh ctfshow@pwn.challenge.ctf.show -p28151
输入yes ,再输入密码后进入远程连接,等待程序结束后发现给了一个shell
得到flag
总结归纳
彩蛋题,没啥说的
PWN 01
解题过程
下载附件进行分析
file查看文件类型,
checksec检查文件是否开始保护,可以看到文件64位,而且关闭了Canary保护
使用IDA静态分析,找到main函数,并且F5得到伪C代码
这个程序会自动根目录下的文件,本地运行pwn测试
本地根目录做个测试文件
system执行cat命令是在shell环境下的,shell命令是由交互的,会把执行的结果打印在shell里面
根据题目提示:应该是在服务器端口上开设了一个服务,nc链接就可以触发
nc pwn.challenge.ctf.show 28235
总结归纳
system执行cat命令是在shell环境下的,shell命令是由交互的,会把执行的结果打印在shell里面
PWN 02
解题过程
和上面一样,file判断文件类型是动态链接库文件,checksec文件唯独没开启Canary防护
IDA下分析可执行文件的伪C代码
运行这个程序会返回一个shell环境,直接查看根目录的flag即可
总结归纳
system("/bin/sh"); 工作原理是什么?
/bin/sh 其实是一个软链接,指向dash
system()函数先fork一个子进程,在这个子进程中调用/bin/sh -c来执行command指定的命令。/bin/sh在系统中一般是个软链接,指向dash或者bash等常用的shell,-c选项是告诉shell从字符串command中读取要执行的命令(shell将扩展command中的任何特殊字符)。父进程则调用waitpid()函数来为变成僵尸的子进程收尸,获得其结束状态,然后将这个结束状态返回给system()函数的调用者。
通俗的讲就是:那么也就是说执行完这个后它就会返回一个shell给函数的调用者:
system("/bin/sh");这一类的我们称之为后门函数,再后续利用过程中我们要尽可能找到或者构造出来
PWN 03
解题过程
file查看文件类型,动态链接库,64位程序
checksec查看文件保护情况,全部开启
IDA中F5分析文件的伪c代码
进入case6函数
远程nc连接,选择6,得到flag
总结归纳
没啥说的,加了点逻辑
PWN 04
解题过程
file查看文件类型,动态链接库,64位程序
checksec查看文件保护情况,全部开启
IDA中F5分析文件的伪c代码
- 首先将字符串"CTFshowPWN"复制到s1变量中。
- 接着,使用puts函数输出字符串"find the secret !"。
- 紧接着,通过_isoc99_scanf函数从用户输入中读取一个字符串到s2变量中。
- 最后,通过 strcmp函数比较s1和s2的内容是否相同。如果相同,则调用execve_func函数。
execve_func函数:
- 可以看到将字符串"/bin/sh”赋值给argv变量。
- 然后,将v2和v3初始化为0。
- 通过调用execve系统调用来执行/bin/sh shell。
输入CTFshowPWN拿flag
总结归纳
execve本身并不是一个后门函数。实际上,execve是一个标准的系统调用函数,用于在Linux和类Unix系统中执行一个新的程序。
该函数接受三个参数:
- filename :要执行的程序的文件名或路径。
- argv :一个以NULL结尾的字符串数组,表示传递给新程序的命令行参数。
- envp :一个以NULL结尾的字符串数组,表示新程序的环境变量。
当调用execve函数时,它会将当前进程替换为新程序的代码,并开始执行新程序。新程序接收argv和envp作为命令行参数和环境变量。在加入某些参数后就可以达到我们所需要的后门函数的效果。
相关文章:

PWN Test_your_nc Write UP
目录 PWN 00 解题过程 总结归纳 PWN 01 解题过程 总结归纳 PWN 02 解题过程 总结归纳 PWN 03 解题过程 总结归纳 PWN 04 解题过程 总结归纳 CTF PWN 开始! 冲就完了 PWN 00 解题过程 ssh远程链连接 ssh ctfshowpwn.challenge.ctf.show -p28151 输…...

Centos7配置firewalld防火墙规则
这里写自定义目录标题 欢迎使用Markdown编辑器一、简单介绍二、特点和功能2.1、区域(Zone)2.2、运行时和永久配置2.3、服务和端口2.4、动态更新2.5、连接跟踪2.6、D-Bus接口 三、设置规则3.1、启动防火墙服务3.2、新建防火墙规则的服务,添加端…...

【新版】系统架构设计师 - 未来信息综合技术
个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 未来信息综合技术考点摘要信息物理系统CPS的体系架构CPS 的技术体系CPS应用场景 人工智能分类关键技术机器学习 机器人发展分类机器人4.0 边缘计算概念与特点边云协同安全应用场景 数字孪生关键技…...
CAD二次开发LineSegment2d
在C#的CAD二次开发中,LineSegment2d 是AutoCAD的.NET API中的一个类,用于表示二维空间中的线段。它包含了起点和终点的坐标信息,并提供了一些方法用于进行线段之间的计算和判断。 LineSegment2d 类具有以下常用属性和方法: Star…...

Linux shell编程学习笔记5:变量命名规则、变量类型、使用变量时要注意的事项
跟其他的高级开发语言一样,Linux Shell编程中使用的数据也需要保存在变量中。 Shell使用变量来控制其行为,并且可以通过更改变量值来更改Shell和其他程序的行为。 我们先来了解一下变量命令的规则、变量类型和使用变量时要注意的事项。 一、变量命名规…...

如何把word的页眉页脚改为图片
前言 亲戚A: 听说你是计算机专业? 沐风晓月: 是啊 亲戚A: 那正好,来看看我这个页眉怎么改成图片 沐风晓月: 一万匹马奔腾而过 亲戚B: 听说你是英语专业? 沐风晓月: 是啊…...
spring6-实现简易版IOC容器
手写简易版IOC容器 1、回顾Java反射2、实现Spring的IoC 我们都知道,Spring框架的IOC是基于Java反射机制实现的,下面我们先回顾一下java反射。 1、回顾Java反射 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所…...
Feign接口调用GET请求@RequestParam传参丢失
文章目录 问题现象排查解决GET加注解解决使用POST方式解决 时间戳传参失败 问题现象 项目使用的是Spring Cloud微服务,服务间调用使用的是Feign在一次服务调用时,发现GET传参丢失,没有传递过去任何参数加了RequestParam注解,发现…...

LeetCode每日一题 | 309.买卖股票的最佳时机含冷冻期
题目链接: 309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) 题目描述: 算法图解: 解题代码: class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();vector&…...

HTML的学习 Day02(列表、表格、表单)
文章目录 一、列表列表主要分为以下三种类型:1. 无序列表(Unordered List):2. 有序列表(Ordered List):将有序列表的数字改为字母或自定义内容li.../li 列表项标签中value属性,制定列…...

Android shape记录
之前一直觉得dataPath很好用,可以画各种矢量图。今天发现用shape画图也不错,记录一下自己用shape画的图。 一般使用shape就是定义形状、stroke边、solid内部、corners圆角等,代码 <?xml version "1.0" encoding "utf-8&q…...

WSL2和ubuntu的安装过程
目录 1.WSL2的安装 2.Ubuntu的安装 3.安装完成后的打开方式 1.WSL2的安装 按下WINX键,选择Windows PowerShell (管理员) 1.1执行以下命令,该命令的作用是:启用适用于 Linux 的 Windows 子系统 dism.exe /online /enable-feature /featur…...
力扣第150题 逆波兰表达式求值 stack c++
题目 150. 逆波兰表达式求值 中等 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都…...

三、飞行和射击
目录 1.飞行的实现 2.限制玩家视角 3.射击的实现 4.附录 1.飞行的实现 (1)在Player预制体上挂载Configuration Joint组件,并修改其Y Drive属性 (2) 修改PlayerInput.cs和PlayerController.cs以实现飞行 PlayerIn…...

GitHub与GitHubDesktop的使用
1、介绍 见天来学习使用GitHub与GitHubDesktop。 学习前先来介绍一下什么是GitHub。 GitHub是一个基于Git的代码托管平台和开发者社区。它提供了一个Web界面,让开发者能够轻松地托管、共享和管理他们的软件项目。 在GitHub上,开发者可以创建自己的代…...
AIGC 微调的方法
AIGC 的微调方法可以分为以下步骤: 数据准备:收集尽可能多的数据,包括输入和输出数据,并将其划分为训练集、验证集和测试集。 模型选择:选择合适的模型结构,例如多层感知器(MLP)、卷…...
gcc编译webrtc x64
gcc使用Ubuntu系统已经有的gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 1、下载离线版webrtc(也可以翻墙下载webrtc) 百度云链接: 链接: https://pan.baidu.com/s/1oHVz9bxXlW3Q6uO996c5XA 提取码: ojbs 2、下载gn https://github.com/timnieder…...

uni-app 实现凸起的 tabbar 底部导航栏
效果图 在 pages.json 中设置隐藏自带的 tabbar 导航栏 "custom": true, // 开启自定义tabBar(不填每次原来的tabbar在重新加载时都回闪现) 新建一个 custom-tabbar.vue 自定义组件页面 custom-tabbar.vue <!-- 自定义底部导航栏 --> <template><v…...

中国1km土壤特征数据集(2010年)
简介: 中国1km土壤特征数据集(2010)是基于第二次全国土壤调查的中国1:1000000比例尺土壤图和8595个土壤剖面图,以及美国农业部(USDA)中国区域土地和气候模拟标准,开发了一个多层土壤粒度分布数…...

计算机网络笔记 第二章 物理层
2.1 物理层概述 物理层要实现的功能 物理层接口特性 机械特性 形状和尺寸引脚数目和排列固定和锁定装置 电气特性 信号电压的范围阻抗匹配的情况传输速率距离限制 功能特性 -规定接口电缆的各条信号线的作用 过程特性 规定在信号线上传输比特流的一组操作过程࿰…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...

GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...