pwn 做题记录 2.11 rop学习

2022 2.11

前两天3d打印机玩的太嗨,效率低下,假期最后几天还是专心搞ctf吧。听说开学后还要面试,必须抓紧了,week4的题目难度可能达不到,至少adworld新手区刷光,进阶题要能做。不过对hgame题解的研究不能停,隔每天还是要看看,总是有收获的。

—————————————————————————————————————

今天主要看rop,是ctfwiki上的blog(实话说ctfwiki讲解的还是很细致的,这个网站师兄早就推给我了,但是现在才刚看了没几篇,这点说不过去)

有几点做个笔记:
1,lea汇编指令,是“load effective address”的缩写,lea指令可以用来将一个内存地址直接赋给目的操作数
例如:lea eax,[ebx+8]
就是将ebx+8这个值直接赋给eax,而不是把ebx+8处的内存地址里的数据赋给eax。
而mov指令则恰恰相反
例如:mov eax,[ebx+8]
把内存地址为ebx+8处的数据赋给eax。(来源:知乎)

2,伪c代码中出现的stevbuf函数用法

3,对于读取输入的c程序对应的汇编代码还不够理解
在这里插入图片描述
比如这个步骤,为什么把断点下在call?s指的是什么(联系上面的三行汇编代码可以看出来s的地址是esp+1Ch)?其实对于溢出这个操作在汇编层面上的过程还不够理解。
再具体一点,现在利用的是C语言代码中的gets()函数,exp中sendline()的目标也应该是它,而payload要求计算距离(应该是输入处到(栈的?)返回地址),那么终点是返回地址,现在要找的是覆盖的起点。

——22:00——
一下午看了几个例子,目前我总结的起点应该就是漏洞函数的地址,而上面这个例子的断点操作还没有搞明白,先接着看吧。

4,在这里插入图片描述
这里就是上回提到的asm(shellcraft.sh())的出处,在阅读pwntools(看来就算是全英文也不得不啃完了)时找到了如下内容:
在这里插入图片描述
由此看来,asm(shellcraft.sh)应该是个用于输出覆写字符串的工具,可能只是看着逼格高一点,似乎ctfwiki的作者就是这样的风格,写文章花样很多,其实是一题多解给你看。
包括后面的ljust方法,其实就相当于'A' * 112,没有十分的高深。

5, 在这里插入图片描述

这个知识点不太懂,好在告诉了是关于汇编int的知识,把王爽老师的书接着看完,后面应该有(之前恶补,只看到call和ret,正好借此机会把整本书巩固一下,毕竟也有很多原理性的知识,明天还要去找一本叫做《加密与解密》的书,再看别的题解的时候好像看到有大佬引用,里面对栈的结构有很清晰的讲解,别的书也要采购一波)。

6,flat这个东西
应该也是覆写的一个手段,应该在pwntools里面可以找到,下次一口气要看完。

7,安装ropgadgets最靠谱的一篇blog

太晚了,这个rop基础部分明天一定要搞完,中高级都至少看一遍,混个眼熟
早睡早起
——————

——————
文中留下的题目:
1,ret2shellcode:
sniperoj-pwn100-shellcode-x86-64
2,ret2libc:
train.cs.nctu.edu.tw: ret2libc
train.cs.nctu.edu.tw: rop
2013-PlaidCTF-ropasaurusrex
Defcon 2015 Qualifier: R0pbaby

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

费列罗大帝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值