pwn
文章平均质量分 60
余切66
一个学习网络安全的小白。
展开
-
ret2syscall-执行系统调用
checksec一下:32位程序,没有canary、PIE,开了NX,放入IDA看一下:有gets,可以溢出,不过没有system函数,也不能执行shellcode,查看字符发现有/bin/sh,那就是新学的系统调用。 假设程序中存在下面的代码: 但是程序中并没有这串代码,所以需要使用ROP(返回导向编程)构造,构造方式如下图:简单来说就是需要找到一些零零散散的gadget,然后组装成payload,不过前提是先溢出劫持控制器,这里IDA里给出v4的大小的'0x64',要溢出的话需要'0x68'也就是原创 2023-07-14 10:45:53 · 177 阅读 · 0 评论 -
[第五空间2019 决赛]PWN5-BUUCTF-格式化字符串
第一眼就看到了'system',看一下条件,这里的atoi函数指的是把字符串转换成整数,而'nptr'就是输入的'passwd',再看看另外一个'dword_804C044'表示这个'0x804C044'地址,那意思就是如果输入的'passwd'的值与'dword_804C044'相等就行了,那就改写一下'0x804C044'的值。'指向的内存位置中。这个表示从上面的文件中读取4个字节的字符,并将读取的数据存储到。有canary,栈溢出无望。数了一下,偏移量为10。原创 2023-07-07 11:33:27 · 236 阅读 · 0 评论 -
ezcmp-青少年ctf平台
大佬调试命令总结。原创 2023-07-04 11:37:30 · 193 阅读 · 0 评论 -
攻防世界-CGfsb
看看附件,先在本地环境打一下,先放入kali查看一下版本: 再查看一下保护机制:可以看出该程序是32位的,保护机制的解释如下:【1】RELRO:RELRO会有Partial RELRO和FULL RELRO,如果开启FULL RELRO,意味着我们无法修改got表。【2】Stack:如果栈中开启Canary found,那么就不能用直接用溢出的方法覆盖栈中返回地址,而且要通过改写指针与局部变量、leak canary、overwrite canary的方法来绕过。【3】NX:NX enabled原创 2023-06-30 16:44:26 · 262 阅读 · 0 评论 -
rip-BUUCTF(栈溢出)
使用ida反汇编程序,发现是一个栈溢出类型,从函数中可以看出给了一个s数组,但没有对输入的长度作限制,因为是一个典型的栈溢出漏洞。然后从main函数之下的fun函数里可以看见一个后门。顺便记录一下后门地址为0x0000000000401186.先使用命令checksec 查看程序保护情况。发现并没有canary保护。使用gdb结合pwndbg调试进程,计算我们覆盖到返回地址所需字节。使用快捷命令b在main函数处下断点,并使用r(run)运行。使用命令 n 按行运行,找到输入点,并随便输入几个字原创 2023-06-14 04:00:00 · 323 阅读 · 0 评论