pwn的习题

文章讲述了在一系列技术挑战中,如何使用nc连接服务器,通过checksec、IDA等工具分析文件,识别gets漏洞、栈溢出、64位保护、不可执行保护,以及编写脚本来获取flag的过程。
摘要由CSDN通过智能技术生成

一题nc一下 连接一下这个服务器

ls 找到该服务器下所有文件

cat一下即可找到flag

二题

checksec 检查文件基本信息

64位 用ida查看一下

F5 查看一下伪代码,在main函数中看到了gets函数 可以进行栈溢出,上面定义数组s可以存储15

在寻找一下怎样获得shell

F12 看一下字符串

空格查看地址,地址为0x40118A

编写脚本

python3 2.py

cat就可以得到flag

三题

先查看一下文件保护 发现是64位

用ida64位打开

找到main函数,F5查看伪代码 然后发现gets漏洞,同时溢出为64

f12查找字符串,发现cat flag 找到具体地址0x400611

编写脚本

进行攻击

得到flag

四题

检查一下 64位  不可执行保护

发现fun函数中是这样通过溢出让v2的等于那个数字

溢出字节0x2c 11.28125对应的十六进制为0x41348000

写脚本

得到flag

五题

不可执行保护 32位 ida看一下

看到get flag ,地址为0x8048F0D

在main函数中看到fgets,s的偏移量是60,再加上4,64位加上flag地址就可以返回

在函数中I自己就替换成you

编写脚本

进行攻击 得到flag

六题

64位 不可执行保护

需要从输入中读取字符

找到shell地址 0x400596

溢出字节0x80  写脚本

得到flag

七题

32位 栈保护 不可执行保护

格式化漏洞:  正常printf需要有格式      如果不写的话   %n 要改第几个位置 就写几    

八题

32位 不可执行保护  部分重定位保护

有溢出漏洞  read   

0x88 记得32位+4

system的plt的地址  0x

08048320


bin sh 的地址 0x0804A024

写脚本

九题

32位 不可执行保护 地址随机化保护 栈保护

main函数中说当var的第13位是17 就可以访问到bin sh

写脚本

得到flag

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值