CTF比赛PWN题解题思路(一)

CTF比赛PWN题解题思路(一)

题目一

运行程序如下,输入1,提示no username

用IDA对程序进行逆向,需要输入admin才能继续

程序漏洞点是在输入用户名的地方存在栈溢出

方法一

使用gdb进行调试,在main函数处设置断点

单步调试(ni)到func函数处,进行步入(si)

单步调试到名字输入的位置

输入足够长度的字符串

计算引起溢出的字符串长度,有两种方法,第一种包括admin所以长度为56

将返回地址覆盖成程序中我们想让其返回的地址,这里我们通过IDA查找危险函数

这里有危险的shell函数,地址为0x405D36, 因为小端存储,因此我们需要写入365D40,字符串为6]@

最终payload为admin+51个字符+6]@,成功获得shell

方法二

根据变量长度计算空间大小,再加上8比特,编写脚本

题目二

首先查看伪代码,栈空间建议使用gdb进行调试,伪代码查看可能不准确

程序最终的判断是v7和v5相等即可得到shell,v7是程序里的,v5是我们的输入,然后这里data可以输入0xc0个字节,这里可以覆盖v7的地址空间。

因此本题的解题思路是输入data,覆盖掉v7,然后输入已知的数据,获得shell。

编写脚本获得shell

题目三

查看伪代码 gets处存在栈溢出,必须首先输入设定的字符串

但是溢出后的返回地址,程序里面并没有明显的shell,但是有bin/sh字符串和system函数可以利用

获取RDI地址

编写脚本获得shell

题目四

类似于题目三,不同点在于没有/bin/sh字符,需要使用gets函数写入

使用gdb调试,vmmap命令获得可写的地址空间

编写脚本写入/bin/sh

获得shell

文章来自网上,侵权请联系博主

黑客&网络安全如何学习

如果你也对网路安全技术感兴趣,但是又没有合适的学习资源,我可以把私藏的网安学习资料免费共享给你们,来看看有哪些东西。

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,100多本网安电子书,最新学习路线图和工具安装包都有,不用担心学不全。
在这里插入图片描述

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值