pwn真的最初让人敬而远之,但现在发现一些刚入门的题目稍微学一下还是能做的,起码了解pwn的答题模式。。。
本篇讲一讲我入门遇到的一些困难和我的解决方案,以供借鉴。
首先是配环境,配环境一定一定要跟着视频教程走,而且是pwn方向的最新的教程。我最初自己装ubuntu,调这个调那个装了两天,然后bug层出不穷,于是卸载了重装。上b站找了个ubuntu24.04的安装教程,它果然把我踩得坑全讲到了。。。如果早点跟着它走估计就不用这个bug问一次网络那个bug问一次ai浪费半天了。
但是,当我真的开始装pwn环境做题时,发现ubuntu24.04没有python2??上网查貌似是嫌它落后摒弃了,想要重装非常困难,于是我又删掉了ubuntu24.04,换了个ubuntu22 。。。反正非常麻烦,这里给出我最后选择的解决方案,虽然也不算完美(配环境中间有未知报错还未解决),但是足以应付pwn的入门题(估计后面用到啥py库的时候发现没有才会被背刺)。链接于下,建议结合ubuntu22/20的下载教程食用
https://www.bilibili.com/video/BV1YT1oYeEVd/?spm_id_from=333.788.top_right_bar_window_custom_collection.content.click&vd_source=c9469016e9feacc824b37bf136bec16f
然后就是栈溢出的基础了,最初我选择在ctfwiki上啃资料,然后大败而归hhh,看不懂啊。然后纯纯小白的我还是灰溜溜的去b站上找sb教程。还得是对大一新生讲题的师傅讲的简单易懂,符合大一新手体质啊。但是这部也有一些缺陷,对于栈的原理,计算机空间分配和堆栈流程等一笔带过不够清晰透彻,建议先看懂下面这篇知乎(也写的非常好,当真大佬),再看视频。
https://www.bilibili.com/video/BV147xgeaEvJ/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=c9469016e9feacc824b37bf136bec16f
https://zhuanlan.zhihu.com/p/313608043?utm_id=0
后面给出一些做buuctf的记录,随缘更新
test_you_nc1
直接nc到服务器,然后cat一下flag就好,给的文件好像没用上
rip1
ida查看main函数是所有教程里面的入门题(hello world了属于是),只需要输入劫持程序运行流让它跑到后门即可。
结合后门位置,编写的shellcode如下。
``