pwnable.tw-babystack笔记

其实这道题真的不难,写这篇文章的目的完全是因为很久没有更新过博客了,感觉要写点什么才好。

首先我们可以通过爆破登陆信息来泄露那16个随机的数字。

登陆之后可以发现有一次strcpy的机会,通过调试可以发现之前登陆的后面一些位数正好可以copy过去,覆盖随机生成的16个字节。

栈上可以看到有一个libc的地址信息,于是在login的时候算好填充的字节数,然后把信息拷贝到原来的随机数组里面,就可以继续通过登陆来爆破地址信息了。

爆破出来之后,可以算出one gadget的地址,至于怎么找这个东西,推荐一个脚本:https://github.com/david942j/one_gadget

运行之后会发现找到了许多,但其实能用的只有一个。

最后把构造好的字符串再拷贝一次即可。

emmmm,感觉字数好少啊,这么简单的题居然还水了一篇,我有罪(

10 thoughts on “pwnable.tw-babystack笔记

  1. 16字节爆破怎么写呢?大佬,我写了个16个for循环,结果卡死了呀。。。。能把爆破代码贴出来么,刚刚入门,什么都不懂。谢谢大佬

  2. 哦哦哦哈,是我太粗心了,没想到一个一个字节的爆破。。哇。。谢谢大佬。大佬后面pwntw的题目不做了么。我去gegoole搜的韩国棒子的都是密码锁住的。。呜呜呜。

    1. 只做了一些,但是pwnable有一个规则就是不能把高分的题解法公布出来,所以后面很多题的解法都是不会公布的。

  3. 大佬,我做到生成payload拷贝这一步了,payload=paddind+one_gadget+bin/sh ,发现只拷贝了one_gadget,one_gadget的地址只有6个字节,前面还有两个\x00\x00,拷贝到这里就截止了。尴尬。

发表评论

电子邮件地址不会被公开。 必填项已用*标注