
pwn
文章平均质量分 73
SsMing.
这个作者很懒,什么都没留下…
展开
-
pwn 暑假复习四 绕过NX/ASLR
根据http://www.vuln.cn/6645 例一:level2源码为#!c#include <stdio.h>#include <stdlib.h>#include <unistd.h>void vulnerable_function() { char buf[128]; read(STDIN_FILENO, buf, 256)...原创 2018-07-16 21:42:27 · 1187 阅读 · 0 评论 -
pwn 暑假复习三 libc泄露
ctfwiki例一:ret2libc2拿到程序checksec查看:没什么问题源码int __cdecl main(int argc, const char **argv, const char **envp){ int v4; // [sp+1Ch] [bp-64h]@1 setvbuf(stdout, 0, 2, 0); setvbuf(stdin, 0, 1, 0); p...原创 2018-07-15 23:40:42 · 7451 阅读 · 4 评论 -
pwn 学习笔记 暑假第九天 __libc_scu_init
__libc_scu_init 这个函数是用来对libc进行初始化操作的在64位的程序中,前六个参数是通过寄存器传递的,之后再多的才是分布在栈上如果程序比较小,很难找到需要的可用的gadget但是如果利用这个函数,可以利用栈溢出构造栈上数据控制rbx,rbp,r12,r13,r14,r15寄存器的值前六个参数依次保存在RDI (可控的其实只是RDI的第32位,就是EDI)...原创 2018-07-21 18:33:24 · 744 阅读 · 2 评论 -
pwn 学习笔记 格式化串计算偏移量
学习参照:https://ctf-wiki.github.io/ctf-wiki/pwn/fmtstr/fmtstr_exploit/利用%s泄露libc函数的got表内容addr%k$s可以用来泄露指定地址的内容,但要先确定k的值,可控制的格式化字符串参数是函数第几个参数(k+1),减一就是格式化字符串的第几个参数(k)。利用 [tag]%p%p%p%p%p%p%p%p%p%p来确...原创 2018-08-15 23:20:43 · 5248 阅读 · 1 评论 -
pwn 练习笔记 format2
例子是protostar format2源码为:和昨天的思路一样,确定要通过格式化字符串洞覆盖target的内容,题目的目的是要让target等于641.找到target的地址2.计算偏移量先起手个200个我们发现第四个就是我们的ABCD,所以改一下payload然后要是target的值为64 ,在括号之前要有64个字符,这里前面已经有34个,还差30个...原创 2018-08-16 22:42:15 · 364 阅读 · 0 评论 -
pwn 网鼎杯 easyFMT
作为一个菜狗子只能等大佬的writeup学习 才会做easyFMT看名字就是到是格式化串洞,然后就是要确定存在格式化串洞的参数是第几个确定为是print的第六个参数大佬计算参数的脚本是:#!/usr/bin/pythonfrom pwn import *elf = ELF('./pwn')for i in xrange(1,100): p = proce...原创 2018-09-01 17:09:20 · 2124 阅读 · 3 评论 -
pwn 练习笔记 覆盖内存地址
目录 覆盖内存地址 protostar stack2protostar format3ssh copy文件报错覆盖内存地址根据ctfwiki学习小于机器字长的数字,因为之前覆盖的方法把地址放在最前面,所以覆盖后,最小值也是4,如果是小于4的数字可以把地址放在后面覆盖大数字,构造通用函数如下:def fmt(prev, word, index): ...原创 2018-09-02 11:19:53 · 1512 阅读 · 0 评论 -
pwn 练习笔记 format4
protostar format4日常练习,源码为#include <stdlib.h>#include <unistd.h>#include <stdio.h>#include <string.h>int target;void hello(){ printf("code execution redirected! y...原创 2018-09-18 09:44:21 · 420 阅读 · 0 评论 -
PWN 网鼎杯 GUESS
拖了好久才看题,中间去参加比赛去了,休息够了开始学习啦!GUESS 在checksec查看后,发现开了canary 和 NX保护,所以可以用 stack smash 来做这个题ida打开,查看一下源代码:发现程序自己把读取flag到了栈中,所以思路就是:1.通过覆盖argv[0]先泄露puts的地址2.通过泄漏的puts的地址,计算出基地址然后泄漏出environ的...原创 2018-09-11 10:01:54 · 1879 阅读 · 0 评论 -
安恒月赛writeup 2018年12月
目录misc1misc2(签到)misc3 (学习资料)misc4(JUJU)web1web2pwn1misc和web,和一道pwnmisc1看提示想到去下当时泄露的库然后写脚本处理一下把数据库的内容,生成三个由用户名,密码,邮箱组成的字典,使用密码组成的字典爆开了压缩包解压后得到个动图,记录上面的数字得到236855282761588523...原创 2018-12-23 20:45:35 · 1674 阅读 · 0 评论 -
pwn 练习笔记 暑假的第三天 rand函数
pwnable random原创 2018-07-15 20:38:26 · 972 阅读 · 0 评论 -
pwn 练习笔记 暑假第八天 DynELF模块
继续昨天的未解之谜,leve4在第二次感受火狐崩溃带来的绝望之后,在此立誓,再也不用火狐写博客IDA打开查看一下伪代码:图没截全,罢啦罢啦!那vul函数就看汇编吧可看出,我们输入的字符串与ebp距离为0x88checksec查看,开了nx保护ROPgadget查看,没有‘/bin/sh’DynELF是pwntools中专门用来应对无libc情况的漏洞利用模块...原创 2018-07-20 17:23:46 · 1955 阅读 · 3 评论 -
pwn 学习笔记 暑假第四天 canary
Stack smash(火狐竟然炸啦,害我重写一遍!!!)原理在程序加了canary 保护之后,如果我们读取的 buffer 覆盖了对应的值时,程序就会报错,而一般来说我们并不会关心报错信息。而 stack smash 技巧则就是利用打印这一信息的程序来得到我们想要的内容。这是因为在程序发现 canary 保护之后,如果发现 canary 被修改的话,程序就会执行 __stack_ch...原创 2018-07-17 14:16:44 · 1104 阅读 · 0 评论 -
pwn 练习笔记 暑假第五天
今天找了jarvisoj上面的两个简单题做一下level0(难度如名字)ida打开看一下,简单栈溢出ssize_t vulnerable_function(){ char buf; // [sp+0h] [bp-80h]@1 return read(0, &buf, 0x200uLL);}int __cdecl main(int argc, const cha...原创 2018-07-17 16:53:41 · 1058 阅读 · 1 评论 -
pwn 练习笔记 暑假十一天
题目来自:https://www.jarvisoj.com/challengesguestbook,一道特别简单的题checksec查看:有个栈不可执行保护,没什么问题IDA打开查看伪代码,先看main函数:还看到调用了fopen和fgetc这样的函数,所以找了一下,发现good_game这个函数;这个函数读取了flag.txt,这个函数的开始地址为000000...原创 2018-07-23 17:55:04 · 482 阅读 · 0 评论 -
pwn 练习笔记 暑假的第一天
pwnable bof 源码如下#include <stdio.h>#include <string.h>#include <stdlib.h>void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); // smash me!...原创 2018-07-14 15:22:03 · 472 阅读 · 0 评论 -
pwn 暑假复习一
根据ctfwiki的顺序来复习例一:test#include <stdio.h> #include <string.h> void SayHello(char* name) { char tmpName[60]; // buffer overflow strcpy(tmpName, name...原创 2018-07-14 15:21:36 · 902 阅读 · 0 评论 -
pwn 练习笔记 暑假第七天
题目来自:https://www.jarvisoj.com/challengeslevel3checksec查看:ida打开:栈溢出,buf与ebp相距0x88(136)一起下载到的还有个libc-2.19.so动态链接库文件,这就很好办啦!二次溢出拿到flag直接上脚本:from pwn import *#sh = process('level3')...原创 2018-07-19 23:19:34 · 444 阅读 · 0 评论 -
pwn 暑假复习二 简单rop
例一:ret2shellcode 先复习一下计算与ebp的距离的方法,昨天复习的是用pattern来寻找,今天复习另一种,以ctfwiki的ret2text为例。先用ida打开查看源码int __cdecl main(int argc, const char **argv, const char **envp){ int v4; // [sp+1Ch] [bp-64h]@1 setvb...原创 2018-07-14 15:21:17 · 2124 阅读 · 1 评论 -
pwn 练习笔记 暑假的第二天 got表覆盖
pwnable passcode1.ssh连上去看源码:#include <stdio.h>#include <stdlib.h>void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); scanf("%d", passcode1); fflush(std...原创 2018-07-14 17:51:47 · 2589 阅读 · 0 评论 -
从格式化字符串泄露canary到栈溢出
以ASIS-CTF-Finals-2017 Mary_Morton为例checksec查看,开了NX保护,还有canaryIDA打开void __fastcall __noreturn main(__int64 a1, char **a2, char **a3){ const char *v3; // rdi int v4; // [rsp+24h] [rbp-Ch]...原创 2019-01-11 21:27:25 · 4406 阅读 · 2 评论