- 博客(9)
- 收藏
- 关注
原创 开启pie保护利用之重启main函数
pie保护我们只能确定main函数后三位地址,所以常规方法改返回地址为main函数是行不通的,这时候就需要用到magic_gadget了,我们通过ida查看libc链接文件中libc_start_main的汇编会发现一个magic_gadget。修改返回地址的尾字节发现我们将main函数的栈地址赋给了rax,那么call rax就行再次返回main函数,此时我们又多了两次read的机会,打ret2libc就可以。将rsp+98h+var_90里的值赋给rax,然后返回rax,我们进入gdb调试看一下。
2024-09-14 20:12:32
414
原创 ctfpwn入门第一次学堆
先通过一篇博客去大概的了解一下堆的前置基础知识吧,我做了一道2.23版本的堆题,在诸多版本中算是比较简单的一个题了。
2024-03-08 17:32:29
1283
4
原创 随机数问题解决
这里指定的值为time0,while循环生成99个随机数并将其对100求余数后加一,我们需要每次都输入与程序产生的数字相同的数才能通过if语句,进入myread函数进行栈溢出,所以我们需要得出系统产生的随机数的值。第一种方法正如上面所说,如果使用相同的seed( )值,则每次生成的随机数都相同。在hgameweek1中遇到一道有关随机数的栈题,之前也没有做过这类题型,今天就通过这一道题简单讲一下它的两个解决方法吧。生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随机数都相同。
2024-03-07 21:14:33
480
1
原创 CTFpwn入门06--栈迁移学习
栈迁移主要应用于我们所构造的payload字节数过多,导致程序无法完全读入栈中达到我们想要的效果。先通过一篇文章学习一下栈迁移的基础知识。
2024-03-03 10:07:40
878
1
原创 手搓payload+非栈上格式化字符串
在格式化字符串漏洞类型题中我们可以利用payload = fmtstr_payload(offset,{printf_got:system_plt})这个工具去修改地址,但是这个工具产生的字节数是很大的,有时候我们是无法去正常利用的,我们需要去自己构造payload修改地址。
2024-02-22 10:00:00
1508
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人