标签: PWN

14 篇文章

thumbnail
PWN刷题笔记——ciscn_2019_ne_5
可以看出,0x48远小于128,先写入payload,再选择4溢出。 这也有个system,可以利用 程序里面有sh这个字符串,上网搜了一下,直接就可以用,不一定非要/bin/sh from pwn import * context.arch='i386' context.log_level='debug' p=remote("node4.buuo…
thumbnail
Ubuntu18以上系统64位的glibc的payload调用system函数时,所需注意的堆栈平衡问题
0x00写在前面 在Ubuntu18以上的版本,64位的程序若包含了system(“/bin/sh”),就需要考虑堆栈平衡。因为在Ubuntu18下system调用时要求地址和16字节对齐,如果没有栈对齐的话,程序就直接crash了。之前咱做过好几道靶机环境是Ubuntu18的pwn题,本地打得通,但是远程打不通,很令人费解;看大佬们的博客和WP,…
thumbnail
2021蓝帽杯 PWN writeup
今年蓝帽杯举办时间太阴间了,周四我全天满课啊,我打个锤子打 和队里的队员们中午花了点时间做题,没想到pwn竟然有一道是去年线下决赛原题,怪不得这么多人做出来了: 于是我去研究了一下去年大佬的wp(算是复现了) 题目mmap出了一块可执行内存,地址位于0x10000,随后读取shellcode到这块内存上并执行,在执行前使用seccomp禁掉了除去o…
thumbnail
PWN刷题笔记——ciscn_2019_c_1
这题。。。我一开始被唬住了,我以为要写个绕过的代码(好好的看一下代码逻辑),其实根本不需要的。。。 还有人说因为 if ( v0 >= strlen(s) ) break; 的存在,还需要'\0'绕过。。。其实根本没必要 不过最后有个很阴间的栈对齐问题,搞得我写不出最终exp。 后面参考了一下大佬的博客https://blog.csdn.ne…
thumbnail
PWN刷题笔记——gwctf_2019_easy_pwn
先声明一点,我真的看不懂这是什么东西,这C++反编译的玩意太恶心了,我吐了。 不过危险函数strcpy(&s, v6);我还是知道的(虽然我就没几次遇到过) strings,crtl+x追踪 pretty找到了,在主函数里,可惜就是没找到I 追踪,好,找到了,可是我还是看不懂。 看看程序吧。。。 。。。 为什么这么做,因为老早之前做过类似的…
thumbnail
堆从入门到跑路
栈的生长方向是从高地址向低地址生长的, 而堆是从低地址向高地址生长的。 0x01综述 堆溢出是指程序向某个堆块中写入的字节数超过了堆块本身可使用的字节数(之所以是可使用而不是用户申请的字节数,是因为堆管理器会对用户所申请的字节数进行调整,这也导致可利用的字节数都不小于用户申请的字节数),因而导致了数据溢出,并覆盖到物理相邻的高地址的下一个堆块。 —…
thumbnail
PWN刷题笔记——[HarekazeCTF2019]baby_rop2
通过这题学了printf的使用方法,也学会了64位双参数类型题解法。 由于是64位程序,传参的时候需要用到寄存器printf函数的原型int printf( const char* format , [argument] … );举个例子–>print(’%s’,‘hello world’)大概就是这样的用法,这边有两个参数要设置,所以我们要…
thumbnail
PWN刷题笔记——ciscn_2019_n_5
先放exp吧 from pwn import * context(os='linux', arch='amd64', log_level='debug') p=remote("node3.buuoj.cn",28206) elf=ELF('./ciscn_2019_n_5') shellcode=asm(shellcraft.sh()) p.rec…