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

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代码

  1. 首先将字符串"CTFshowPWN"复制到s1变量中。
  2. 接着,使用puts函数输出字符串"find the secret !"。
  3. 紧接着,通过_isoc99_scanf函数从用户输入中读取一个字符串到s2变量中。
  4. 最后,通过 strcmp函数比较s1和s2的内容是否相同。如果相同,则调用execve_func函数。
     

execve_func函数:

  1. 可以看到将字符串"/bin/sh”赋值给argv变量。
  2. 然后,将v2和v3初始化为0。
  3. 通过调用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.买卖股票的最佳时机含冷冻期

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

HTML的学习 Day02(列表、表格、表单)

文章目录 一、列表列表主要分为以下三种类型&#xff1a;1. 无序列表&#xff08;Unordered List&#xff09;&#xff1a;2. 有序列表&#xff08;Ordered List&#xff09;&#xff1a;将有序列表的数字改为字母或自定义内容li.../li 列表项标签中value属性&#xff0c;制定列…...

Android shape记录

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

WSL2和ubuntu的安装过程

目录 1.WSL2的安装 2.Ubuntu的安装 3.安装完成后的打开方式 1.WSL2的安装 按下WINX键&#xff0c;选择Windows PowerShell (管理员) 1.1执行以下命令&#xff0c;该命令的作用是&#xff1a;启用适用于 Linux 的 Windows 子系统 dism.exe /online /enable-feature /featur…...

力扣第150题 逆波兰表达式求值 stack c++

题目 150. 逆波兰表达式求值 中等 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&#xff09;都…...

三、飞行和射击

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

GitHub与GitHubDesktop的使用

1、介绍 见天来学习使用GitHub与GitHubDesktop。 学习前先来介绍一下什么是GitHub。 GitHub是一个基于Git的代码托管平台和开发者社区。它提供了一个Web界面&#xff0c;让开发者能够轻松地托管、共享和管理他们的软件项目。 在GitHub上&#xff0c;开发者可以创建自己的代…...

AIGC 微调的方法

AIGC 的微调方法可以分为以下步骤&#xff1a; 数据准备&#xff1a;收集尽可能多的数据&#xff0c;包括输入和输出数据&#xff0c;并将其划分为训练集、验证集和测试集。 模型选择&#xff1a;选择合适的模型结构&#xff0c;例如多层感知器&#xff08;MLP&#xff09;、卷…...

gcc编译webrtc x64

gcc使用Ubuntu系统已经有的gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 1、下载离线版webrtc&#xff08;也可以翻墙下载webrtc&#xff09; 百度云链接: 链接: 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年)

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

计算机网络笔记 第二章 物理层

2.1 物理层概述 物理层要实现的功能 物理层接口特性 机械特性 形状和尺寸引脚数目和排列固定和锁定装置 电气特性 信号电压的范围阻抗匹配的情况传输速率距离限制 功能特性 -规定接口电缆的各条信号线的作用 过程特性 规定在信号线上传输比特流的一组操作过程&#xff0…...

使用CreateProcess崩溃:处未处理的异常: 0xC0000005: 写入位置 0x00415652 时发生访问冲突

问题代码 if (!CreateProcess(NULL,L"pela.exe",NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)){return 0;}如果CreateProcess的第二个参数字符串是常量或者是储存在堆中的就会被写保护&#xff0c;崩溃。如果字符串定义到栈或者全局变量就不存在此问题了。 正确的…...

Java 华为真题-出租车计费

需求 程序员小明打了一辆出租车去上班。出于职业敏感&#xff0c;他注意到这辆出租车的计费表有点问题&#xff0c;总是偏大。 出租车司机解释说他不喜欢数字4&#xff0c;所以改装了计费表&#xff0c;任何数字位置遇到数字4就直接跳过&#xff0c;其余功能都正常。 比如&…...

开源layui前端框架 收款码生成系统源码 多合一收款码生成源码 带50多套UI模板

Layui前端的多合一收款码在线生成系统源码_附多套前端UI模板。 卡特三合一收款码生成系统源码&#xff0c;和收款啦采用一样的原理。 内部多达50多套模板&#xff0c;前端跟付款界面都特别好看。 识别收款码之后会自动加密&#xff0c;非常安全。 一样没有后台&#xff0c;一样…...

微服务moleculer01

1.官网地址&#xff1a; Moleculer - Progressive microservices framework for Node.js 2. github代码地址&#xff1a; GitHub - moleculerjs/moleculer: :rocket: Progressive microservices framework for Node.js Moleculer是基于Node.js的一款快速、多功能的微服务框…...

C++中将指针传递给函数

C中将指针传递给函数 指针是一种将内存空间传递给函数的有效方式&#xff0c;其中可包含函数完成其工作所需的数据&#xff0c;也可包含操作结果。将指针作为函数参数时&#xff0c;确保函数只能修改您希望它修改的参数很重要。例如&#xff0c;如果函数根据以指针方式传入的半…...

【51单片机编写占空比按秒渐亮与渐暗】2023-10-2

昨天刚在W10上安装CH340驱动&#xff0c;又下载到板子上LCD1602定时器时钟程序&#xff0c;为了调试&#xff0c;调用了一个LED观察控制蜂鸣器按秒响的变量&#xff0c;几经调试才发觉该开发板用的是有源蜂鸣器&#xff0c;不用IO取反操作&#xff0c;直接控制IO的高低电平即可…...

OCI 发布了容器运行时和镜像规范!

7 月 19 日是开放容器计划Open Container Initiative&#xff08;OCI&#xff09;的一个重要里程碑&#xff0c;OCI 发布了容器运行时和镜像规范的 1.0 版本&#xff0c;而 Docker 在这过去两年中一直充当着推动和引领的核心角色。 我们的目标是为社区、客户以及更广泛的容器行…...

C++学习笔记一: 变量和基本类型

本章讲解C内置的数据类型&#xff08;如&#xff1a;字符、整型、浮点数等&#xff09;和自定义数据类型的机制。下一章讲解C标准库里面定义的更加复杂的数据类型&#xff0c;比如可变长字符串和向量等。 1.基本内置类型 C内置的基本类型包括&#xff1a;算术类型和空类型。算…...

探索ClickHouse——同时支持导入导出功能的文件格式

在《探索ClickHouse——安装和测试》中&#xff0c;我们使用clickhouse直接从文件中读取数据。clickhouse支持多种格式文件的导入导出&#xff0c;本节我们对此进行分类介绍。 按常见格式区分 JSON 原始的JSON格式只支持导入&#xff0c;不支持导入。同时支持导入和导出的是…...

Scipy库提供了多种正态性检验和假设检验方法

Scipy库提供了多种正态性检验和假设检验方法。以下是一些常用的检验方法的列表&#xff1a; 正态性检验方法&#xff1a; Shapiro-Wilk检验&#xff1a;scipy.stats.shapiroAnderson-Darling检验&#xff1a;scipy.stats.andersonKolmogorov-Smirnov检验&#xff1a;scipy.st…...

济南建站/网络培训平台

讲到CRM&#xff0c;我都不好意思说。 因为这个行当李鬼太多。假话说多了&#xff0c;人都以为是真的。 有卖OA的&#xff0c;说自己做的是CRM。有卖工作流的、业务基础平台的&#xff0c;也说自己做的是CRM。 更别说做呼叫中心板卡、卖电话机、卖耳麦、卖短信的&#xff0c;更…...

网站域名在哪里申请/建一个外贸独立站大约多少钱

好久没有写笔记了&#xff0c;因为遇到了很多事情&#xff0c;换了工作&#xff0c;学习了很多新知识&#xff0c;感觉没那么多时间来些笔记了&#xff0c;今天有点时间了&#xff0c;那么就好好好整理下工作中用到的知识点吧 最近在用docker部署项目&#xff0c;本地可以直接…...

深圳尚石设计有限公司/seo培训优化课程

万事开头难&#xff0c;之前一直做BLE&#xff08;TI、Nordic、Dialog &#xff09;相关开发&#xff0c;没有做过蓝牙音频相关的&#xff0c;现要做高通&#xff08;CSR&#xff09;QCC300x 、QCC302x、 QCC502x 系列开发&#xff0c;换了一个新的平台&#xff0c;不知道该从何…...

农村建设设计网站/品牌营销策划包括哪些内容

首先&#xff0c;随着工业互联网逐渐开始落地应用&#xff0c;大学生和职场人学习一门编程语言还是有必要的&#xff0c;由于Python语言是比较典型的全场景编程语言&#xff0c;所以学习Python语言是一个不错的选择&#xff0c;相比于Java、C等编程语言主要应用在IT互联网行业来…...

中国建设监理协会网站继续教育系统/长沙网站关键词排名公司

Mybatis中band绑定String参数报错&#xff1a;There is no getter for property named ‘xxx’ in class java.lang.String’解决问题 在学习mybatis中的band标签时&#xff0c;写了一个模糊查询&#xff0c;如下&#xff1a; dao层方法&#xff1a;List<Users> select…...

企业网站开发建设/郑州百度快照优化

学习笔记 学习笔记 classification_report sklearn.metrics.classification_report(y_true, y_pred, labels None, target_names None, sample_weight None, digits2) 显示主要的分类指标 返回每个类标签的精确、召回率及F1值 主要参数说明&#xff1a; labels&#xff1a…...