pwn
文章平均质量分 94
So4ms
学网安的菜狗,
个人主页so4ms.top
展开
-
pwn学习-攻防世界(二)
文章目录0X00 pwn-1000x01 monkey0x02 stack20x03 pwn-2000x04 welpwn0X00 pwn-100下载文件,只开启了NX保护。反编译一下,main函数调用了sub_40068E()函数,然后sub_40068E()函数调用了sub_40063D函数,第一个参数为v1,第二个参数为200.int sub_40068E(){ char v1; // [rsp+0h] [rbp-40h] sub_40063D((__int64)&v1,原创 2021-01-18 15:41:24 · 530 阅读 · 3 评论 -
pwn学习-jarvisoj-level5
mmap和mprotect练习,假设system和execve函数被禁用,请尝试使用mmap和mprotect完成本题。mprotect()函数在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性。mprotect()函数把自start开始的、长度为len的内存区的保护属性修改为prot指定的值。int mprotect(const void *start, size_t len, int prot);port:(读4,写2,执行1)由于64位下函数传参前六个参.原创 2020-12-22 14:38:32 · 399 阅读 · 0 评论 -
pwn学习-jarvisoj-smashes-利用canary打印信息
下载文件,先检查一下保护机制,开得还挺多的。反编译一下查看伪代码。unsigned __int64 sub_4007E0(){ __int64 v0; // rbx int v1; // eax __int64 v3; // [rsp+0h] [rbp-128h] unsigned __int64 v4; // [rsp+108h] [rbp-20h] v4 = __readfsqword(0x28u); __printf_chk(1LL, "Hello!\nWhat's原创 2020-12-22 14:37:13 · 310 阅读 · 1 评论 -
pwn学习-jarvisoj-level4-无libc的漏洞利用
这题下载文件下来,文件与level3反编译后伪代码基本一样,只是相比level3少了一个libc文件。level3vulnerable_function()中存在明显的栈溢出,分配了0x88的空间,能输入0x100的内容。ssize_t vulnerable_function(){ char buf; // [esp+0h] [ebp-88h] return read(0, &buf, 0x100u);}同样以payload payload = 'a' * 0x8c + p32原创 2020-12-20 12:02:16 · 278 阅读 · 2 评论 -
pwn学习-攻防世界(一)
文章目录0x00 forgot0X01 dice_game0x02 Mary_Morton0x03 warmup0x00 forgot下载文件,检查文件保护机制,只开启了NX保护的32位文件。拖入ida反编译一下,好多函数。。先输入一个参数s,然后给出了函数sub_8048654()的地址,然后输入参数v2的值,进入for循环。判断v0的值和v2的长度,v0大于等于v2退出循环。接下来是switch语句,参数为v14,初始为1,退出switch后,会执行(*(&v3 + --v14))()原创 2020-12-20 12:00:47 · 867 阅读 · 1 评论 -
pwn学习-BUUOJ(一)
文章目录0x00 test_your_nc0X01 rip0x02 warmup_csaw_20160x03 pwn1_sctf_20160x04 ciscn_2019_n_10x00 test_your_nc下载文件查看,直接就给了shell,没什么好说的,直接连上就行了。int __cdecl main(int argc, const char **argv, const char **envp){ system("/bin/sh"); return 0;}0X01 rip下载文原创 2020-12-20 12:00:01 · 552 阅读 · 3 评论 -
pwn学习-攻防世界新手区
文章目录0X00 hello_pwn0X01 when_did_you_born0X02 level00X03 level20x04 CGfsb0x05 guess_num0x06 cgpwn20x07 int_overflow0x08 level30x09 string0X00 hello_pwn下载文件,拖入Ubuntu用checksec查看,64位文件,开启了NX保护。拖入ida查看,read函数读取输入赋值给unk_601068,然后判断dword_60106C是否等于nuaa,相等则执行s原创 2020-12-20 11:58:55 · 1495 阅读 · 1 评论 -
pwn学习-bugku
文章目录0x00 pwn1第一题很简单,nc连接后直接就有执行权限。ls获取文件列表,cat flag就拿到了flag。0x01 pwn2第二题,下载文件,checksec查看文件保护和文件类型。将文件拖入ida,发现了get_shell_函数F5查看main函数代码,发现s申请了0x30个字节,而read函数,最大能读取0X100个字符,就造成了栈溢出,我们只要将返回地址覆盖为get_shell_的地址就可以得到flag。查看get_shell_函数,可以直接输出flag,只要将m原创 2020-12-20 11:55:58 · 855 阅读 · 2 评论