p1KkHeap

0.环境

1.文件信息

2.文件开启的保护

3.IDA分析

main函数

add

show

edit

delete

delete功能出现了指针悬浮的问题,配合上tcache,可以任意地址申请。

思路

程序禁用了system和execve,但是mmap出了一个R/W/X的区段。

我们可以通过double free 再 fix 的方式来修改tcache的struct,从而leak出libc地址 && 写入shellcode && 将 __malloc_hook改成R/W/X的区段。

login

0.环境

1.文件信息

2.文件开启的保护

3.IDA分析

一个简单的格式化字符串漏洞,在 函数 sub_804854B 里,出现了直接调用printf输出字符串的现象(这个字符串的内容完全由用户控制)

但是这道题的解决思路不是改got表的解析或修改__fini_array。

根据动态调试可以发现,当执行 printf(s1); 时,在栈上存储了很多栈地址,并且他们是构成了单向链条的,因此我们可以利用栈上的栈地址,通过 %n 去修改栈上的栈地址为返回地址,从而跳到 one_gadget 拿到 shell。


参考链接:

官方writeup:https://www.anquanke.com/post/id/194640#h3-13

题目文件:https://github.com/DrsEeker/swpuctf2019

最新文章

  1. JAVA安装过程中出现的“javac不是内部或外部指令”的解决方法
  2. ZOJ2314 Reactor Cooling
  3. 【优先队列】【最近连STL都写不出来了/(ㄒoㄒ)/~~】hdu_5360/多校#6_1008
  4. java采用Apache FileUpload组件实现上传
  5. Ubuntu14.04安装有道词典
  6. C#线程(二)
  7. 关于Android自定义view 你所需要知道的基本函数
  8. Python基础——0前言
  9. IDEA更换主题
  10. 咏南新BS开发框架
  11. MySQL 批量添加
  12. python全栈开发day17-常用模块collections,random,time,os,sys,序列化(json pickle shelve)
  13. 外部调用mvc的api方法时,如何解决跨域请求问题?
  14. 用windows自带的fsutil来创建1G稀疏文件(sparse file)
  15. Problem A&B: 开宝箱 1/2 (最沙雕的做法)(未用指针做) 改:附上一种指针做法
  16. dRMT: Disaggregated Programmable Switching
  17. ACM 第十四天
  18. ARM实验4—按键轮询实验
  19. python中的字典内置方法小结
  20. 异或巧用:Single Number

热门文章

  1. 关于js函数闭包的理解
  2. illustrator 偏方
  3. linux c++ 实现http请求
  4. Spring Cloud Zuul Filter 和熔断
  5. for循环语句的用法
  6. MySQL -2- 体系结构--随笔小记
  7. 另一种分页器 不依赖Paginator模块的方法
  8. keepalived 容器在宿主机重启后无法启动问题:报错:daemon is already running
  9. Java中的享元设计模式,涨姿势了!
  10. Exceptionless