pwn技巧
文章平均质量分 83
九层台
这个作者很懒,什么都没留下…
展开
-
how2heap注意点总结-上
1.chunk的申请机制,在申请chunk的时候满足first-fit算法(从unsorted bin中遍历遇到第一个比需要chunk大的chunk切割,然后遍历unsorted bin链对应chunk放入对应位置)(所需chunk大小大于small bin或者small bin中没有找到恰好满足的chunk大小,或者fastbin中没有找到合适的chunk大小会引起fast bins遍历合并放...原创 2020-03-11 15:45:08 · 973 阅读 · 0 评论 -
pwnable(otp)(open,read等函数的检查缺失)
远程拷贝文件到本地 scp -P 2222 otp@pwnable.kr:/home/otp/opt .学习到的函数strtoul(argv[1], 0, 16)str转化位long,以16进制方式。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h&...原创 2018-09-30 17:30:27 · 409 阅读 · 0 评论 -
pwnable md5 calculator(随机数生成)
开启了canary和NX保护int __cdecl main(int argc, const char **argv, const char **envp){ unsigned int v3; // eax int v5; // [esp+18h] [ebp-8h] int v6; // [esp+1Ch] [ebp-4h] setvbuf(stdout, 0, 1, 0);...原创 2018-09-28 22:16:06 · 512 阅读 · 0 评论 -
jarvisoj(level6)--unlink
unlink其实就是把chunk从bin链中拉出来然后跟前面或者后面的chunk合并。参考https://ctf-wiki.github.io/ctf-wiki/pwn/linux/heap/unlink/。则当我们free(Q)时glibc 判断这个块是 small chunk。判断前向合并,发现前一个 chunk 处于使用状态,不需要前向合并。判断后向合并,发现后一个 chunk ...原创 2018-09-21 22:14:43 · 1611 阅读 · 2 评论 -
格式化字符串绕过canary
格式化字符串%35$x以4字节为单位也就是说这里输出的是从0开始的35*4=140字节处的4字节的值。 进入正题。题目链接https://pan.baidu.com/s/12EGc5oyzI6PmjPRoCgyhEAunsigned int sub_80485CD(){ char v1; // [esp+1Bh] [ebp-4Dh] char buf; // [esp+1Ch]...原创 2018-07-31 20:06:39 · 1407 阅读 · 0 评论 -
Jarvis OJ [XMAN]level3 [XMAN]level3
查询保护liu@liu-F117-F:~/桌面/oj/level3$ checksec level3[*] '/home/liu/\xe6\xa1\x8c\xe9\x9d\xa2/oj/level3/level3' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found...原创 2018-07-07 13:07:38 · 1465 阅读 · 0 评论 -
[JarvisOJ][pwn]HTTP
用ida打开之后可以看到这是一个http服务用fork创建了新的进程来处理连接。void __fastcall __noreturn main(__int64 a1, char **a2, char **a3){ __int16 s; // [rsp+0h] [rbp-20h] uint16_t v4; // [rsp+2h] [rbp-1Eh] uint32_t v5; /...原创 2018-07-05 14:30:29 · 929 阅读 · 0 评论 -
[JarvisOJ][pwn]Guess
练习了一个oj平台上的题,感觉收货很多,在这里记下来。liu@liu-F117-F:~/桌面/oj/猜测$ checksec 1[*] '/home/liu/\xe6\xa1\x8c\xe9\x9d\xa2/oj/\xe7\x8c\x9c\xe6\xb5\x8b/1' Arch: amd64-64-little RELRO: No RELRO Sta...原创 2018-07-01 09:21:27 · 876 阅读 · 1 评论 -
格式化字符串漏洞利用模板
格式化字符串漏洞就是个格式化的时候限制条件缺失导致的漏洞,下面用一个栗子来讲解 https://download.csdn.net/download/qq_38204481/10416723。这里可以下载栗子。int __cdecl main(int a1){ char s; // [esp+0h] [ebp-408h] unsigned int v3; // [esp+3FCh]...原创 2018-05-16 13:36:42 · 1714 阅读 · 2 评论 -
泄漏libc获取shell的模板
这里用一个例子来讲解文件名叫ret2libc3可以自行下载。 这里只开启了NX保护,但是这才典型。下面讲述一下正常pwn的思路。 代码很简单,漏洞也很清楚,栈溢出。int __cdecl main(int argc, const char **argv, const char **envp){ char s; // [esp+1Ch] [ebp-64h] setvbuf...原创 2018-05-15 21:33:46 · 2980 阅读 · 3 评论 -
CTFpwn总结 入门
学了那么久pwn了,基础知识终于积累的差不多了,来这个总结希望其他学pwn的人能少走一些弯路。0x01学pwn需要哪些知识呢? 堆栈是少不了的。要知道函数调用的时候,栈中的数据是怎么放的,知道ebp在哪,知道返回地址在哪。 能看懂汇编,2条指令要清楚,ret和call。 具备这些基础知识你就能够开始学pwn了。0x02需要注意什么 在溢出是要清楚2个...原创 2018-04-26 20:48:49 · 25289 阅读 · 2 评论 -
Smashes Jarvis OJ
nc pwn.jarvisoj.com 9877 检查开启的保护liu@ubuntu:~/Desktop$ checksec 2[*] '/home/liu/Desktop/2' Arch: amd64-64-little RELRO: No RELRO Stack: Canary found #栈保护 NX: NX en...原创 2018-04-06 17:18:18 · 651 阅读 · 0 评论 -
pwn入门2
bof 首先输入2个网址,得到了一个源代码一个elf文件#include <stdio.h>#include <string.h>#include <stdlib.h>void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overfl...原创 2018-03-28 12:51:41 · 465 阅读 · 0 评论 -
pwn入门
之前学过一点关于pwn,不过总是断断续续,学一点就停止了,这次准备好好学一下。推荐一个网站这是个练习pwn的很好的网站FD 先连上去 查看fd.c文件 main函数中:argc是命令行参数个数,char *argv[]是指所有命令行参数,char *envp[]是环境变量(argv[1]位置处存放的是命令行输入的第一个参数) atoi函数的作用是把字符转化为int型数据。 ...原创 2018-03-27 13:24:47 · 11262 阅读 · 4 评论