CTF-PWN练习之通用跳转技术

本文介绍了如何在CTF PWN练习中利用通用跳转技术执行Shellcode。通过分析strdup函数和grep命令的使用,学习如何通过正则表达式过滤输出信息,并结合gdb调试找出程序漏洞。实验详细步骤包括源码审计、使用gdb调试、构造输入数据发起溢出攻击,最终实现Shellcode的执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

预备知识

一、相关实验

本实验要求您已经认真学习和完成了《CTF PWN练习之绕过返回地址限制》。

二、strdup函数

strdup可以用于复制一个字符串,我们通常使用字符串时会使用strcpy,这要求已经定义好了一个接收缓冲区。而strdup只接受一个参数,也就是要复制的字符串的地址,strdup()会先用malloc()配置与参数字符串相同大小的的空间,然后将参数字符串的内容复制到该内存地址,然后把该地址返回。strdup返回的地址最后可以利用free()来释放。

三、grep命令

当输出信息非常多的时候,我们很难快速找到我们感兴趣的信息。使用grep命令可以对匹配特定正则表达式的文本进行搜索,并只输出匹配的行或文本。
我们可以使用管道将一个程序的输出当做grep的输入数据,grep会根据给定的正则表达式参数对输入数据进行过滤。
对于grep的参数需要注意这样一个问题:当参数中存在空格时需要用双引号将参数包裹起来,此外,*是正则表达式里面的通配符,如果要查找*,需要使用反斜杠进行转义,即\*。

实验目的

1)学会使用grep命令通过正则表达式过滤输出信息。
2)学会综合使用grep与objdump搜索特定的指令。
3)学会通用的跳转技术来执行Shellcode。

实验环境

在这里插入图片描述
服务器:CentOS6.5,IP地址:随机分配
辅助工具:Pyth

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值