其实这道题真的不难,写这篇文章的目的完全是因为很久没有更新过博客了,感觉要写点什么才好。
首先我们可以通过爆破登陆信息来泄露那16个随机的数字。
登陆之后可以发现有一次strcpy的机会,通过调试可以发现之前登陆的后面一些位数正好可以copy过去,覆盖随机生成的16个字节。
栈上可以看到有一个libc的地址信息,于是在login的时候算好填充的字节数,然后把信息拷贝到原来的随机数组里面,就可以继续通过登陆来爆破地址信息了。
爆破出来之后,可以算出one gadget的地址,至于怎么找这个东西,推荐一个脚本:https://github.com/david942j/one_gadget
运行之后会发现找到了许多,但其实能用的只有一个。
最后把构造好的字符串再拷贝一次即可。
emmmm,感觉字数好少啊,这么简单的题居然还水了一篇,我有罪(
16字节爆破怎么写呢?大佬,我写了个16个for循环,结果卡死了呀。。。。能把爆破代码贴出来么,刚刚入门,什么都不懂。谢谢大佬
就是爆破卡住了,大佬可以回复我么,新年快乐!。
你是说这道题的爆破吗?一个字节一个字节的爆破啊,先爆破出一位之后再爆破后面的数
哦哦哦哈,是我太粗心了,没想到一个一个字节的爆破。。哇。。谢谢大佬。大佬后面pwntw的题目不做了么。我去gegoole搜的韩国棒子的都是密码锁住的。。呜呜呜。
只做了一些,但是pwnable有一个规则就是不能把高分的题解法公布出来,所以后面很多题的解法都是不会公布的。
那大佬有么有推荐的其他练习的地方。感觉接下来只能找ctf上面的题目零散的做了。。
把以前的一些高质量的ctf的题照着wp浮现一遍我觉得挺不错的(
大佬,我做到生成payload拷贝这一步了,payload=paddind+one_gadget+bin/sh ,发现只拷贝了one_gadget,one_gadget的地址只有6个字节,前面还有两个\x00\x00,拷贝到这里就截止了。尴尬。
one_gadget为啥会需要/bin/sh这个字符串啊
大佬,我终于搞定了你说的很简单的题目。呜呜呜