pwn学习
文章平均质量分 67
writeup大合集
Lucien_Carr
这个作者很懒,什么都没留下…
展开
-
[BUUCTF] jarvisoj_level2
读取文件指从某一个已打开地文件中,读取一定数量的字符,然后将这些读取的字符放入某一个预存的缓冲区内,供以后使用。有危险函数read,而且调用了system函数(但是缺少了“/bin/sh”参数)handle: 一个已经打开的文件句柄,表示从这个文件句柄所代表的文件读取数据。buffer: 指缓冲区,即读取的数据会被放到这个缓冲区中去。n: 表示调用一次read操作,应该读多少数量的字符。按“shift”+“F12”查看字符串,结果如下。进入文本视图查看system函数地址,如下图。原创 2024-04-14 22:50:08 · 442 阅读 · 0 评论 -
[BUUCTF]ciscn_2019_c_1
想办法通过encrypt函数的 get函数栈溢出获得其中一个函数的地址(本题选择puts),通过LibcSearcher得到该函数在对应libc中的偏移量。没有‘system’,‘bin/sh’等有用的字符串,函数列表里也没有system等后门函数。该程序中并没有system,bin/sh等有用的字符串,无法使用ret2text。也没有构造溢出的函数,但是有很多puts,很好后面ret2libc可以用。通过已经调用过的函数泄露它在程序中的地址,然后利用地址末尾的3个字节,在。没什么能构造溢出的函数。原创 2024-04-08 00:15:36 · 1344 阅读 · 1 评论 -
[CTFHub] ret2text
gets_s(buffer,size)函数:从标准输入中读取数据,size表示的最多读取的数量,在这里是argv,没有定义是多大,所以我们就可以无限的输入。输入超过程序设定的字节数以后,就会发生栈溢出,多出的内容会覆盖返回地址。这个题目中要获得系统的shell,只需要先用垃圾数据填充填满数组的空间,再拼上系统system函数的返回地址就可以。只要我们能控制程序返回到0x4007B8(“/bin/sh”指令的地址),就可以得到系统的shell。我们攻击的目的主要是获得系统的控制权(也就是拿到shell)。原创 2024-04-14 21:44:01 · 635 阅读 · 1 评论 -
[BUUCTF] ciscn_2019_n_8
这道题非常简单(甚至比ret2text简单...),只需要满足让系统调用system函数的条件,即将var[13]这个数组里全部填上17即可。checksec --file='filename' # filename为下载文件的自定义名称。观察选择条件,只需要满足var[13] = 17就可以。前面有scanf函数,可以直接向var数组输入。开了canary、NX和PIE,似乎防得很严实。主函数里就调用了system函数,运气很好。32位程序,放到IDA中继续分析。攻击成功,运行结果如下。原创 2024-04-14 22:13:54 · 265 阅读 · 0 评论