CTF-PWN
本人PWN的学习记录
夏了茶糜
这个作者很懒,什么都没留下…
展开
-
PWN——GCC编译中几种保护打开和关闭的参数
NX:-z execstack / -z noexecstack (关闭 / 开启) 不让执行栈上的数据,于是JMPESP就不能用了Canary:-fno-stack-protector /-fstack-protector /-fstack-protector-all (关闭 / 开启 / 全开启) 栈里插入cookie信息PIE:-no-pie / -pie (关闭 / 开启) 地址随机化,另外打开后会有get_pc_thunkRELRO:-z norelro / -z lazy.转载 2020-09-21 18:04:05 · 986 阅读 · 1 评论 -
[BJDCTF 2nd] r2t4
题目下载地址:点此下载查保护此处存在格式化字符串漏洞利用格式化字符串漏洞复写got表中的__stack_chk_fail地址,这个函数的作用是,当程序出现栈溢出的时候执行此函数,利用格式化字符串漏洞把这个函数的got表地址覆盖为后门函数EXP:from pwn import * context(arch='amd64',os='linux',word_size='64')#p...原创 2020-03-24 13:17:33 · 854 阅读 · 0 评论 -
[BJDCTF 2nd] test
ssh -p 26619 ctf@node3.buuoj.cn连接服务器没有读取flag的权限看下test.c#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ char cmd[0x100] = {0}; puts("Welcome to P...原创 2020-03-23 21:42:08 · 645 阅读 · 0 评论 -
Asis CTF 2016 b00ks(堆溢出NULL byte off-by-one)
Asis CTF 2016 b00ks1.题目获取2.查保护3.分析程序4.地址泄露泄露地址修改地址5.伪造结构体1.题目获取题目下载地址:点此下载2.查保护3.分析程序IDA载入,查看main函数这个函数读取一个名字,最长32个字节。作者名被读到data段sub_A89()打印程序功能,并获取用户输入的序号sub_F55()的功能是添加书籍信息,在这个函数中可以分析到...原创 2020-03-21 14:17:33 · 1479 阅读 · 0 评论 -
XCTF-PWN pwn-200(使用DynELF利用write泄露system地址)
题目下载地址:点此下载查保护只开启了NX查看是否有后面函数,没有!所以需要利用DynELF泄露system地址获取shell。这题比较简单,就不写详细解释了,直接上EXP。EXP:# -*- coding: utf-8 -*-# @Author: 夏了茶糜# @Date: 2020-03-19 14:01:14# @email: sxin0807@qq.com# @Las...原创 2020-03-19 15:17:01 · 364 阅读 · 0 评论 -
XCTF-PWN welpwn
使用LibcSearcher解法使用GDB动态调试下,发现0x7fffffffdae0-0x7fffffffdb00是函数是echo的栈帧0x7fffffffdb00开始就是属于main函数的栈帧0x7fffffffdb00-0x7fffffffdb08是上一个栈帧的rbp,已经被覆盖0x7fffffffdb08-0x7fffffffdb0f是retn返回的地址可以通过4个pop把...原创 2020-03-16 17:12:42 · 648 阅读 · 0 评论 -
XCTF pwn-100(使用DynELF)
from pwn import *#p = process("./pwn-100")p = remote("111.198.29.45",37259)elf = ELF("./pwn-100")read_got = elf.got['read']puts_plt = elf.plt['puts']start = 0x400550pop_rdi = 0x400763#ROPgad...原创 2020-03-14 17:20:13 · 334 阅读 · 1 评论 -
XCTF warmup
这题没有二进制文件最简单的一个盲打pwn题 。虽然难的题目我还不会只有一个ip和一个端口nc连接上去看看发现程序会给我们返回一个地址猜测这个地址就是后门函数的地址写了个爆破程序from pwn import *def blast(ip,port,padd_start,padd_end,addr): for i in range(padd_start,padd_end): ...原创 2020-03-10 19:58:45 · 1137 阅读 · 0 评论 -
XCTF Mary_Morton
原题出现在ASIS-CTF-Finals-2017程序存在两个漏洞,一个格式化字符串漏洞,一个栈溢出漏洞通过格式化字符串漏洞泄露canary的值,然后再构造payload,利用栈溢出漏洞获取flagcanary的值是v2,因此得到canary在栈中的位置为第17位(0x88 / 8=17),又因为程序为64位程序,64位程序函数调用前6个参数通过寄存器传递,所以要加6,因此格式化字符为%2...原创 2020-03-09 11:40:43 · 492 阅读 · 0 评论 -
XCTF note-service2
查程序保护机制开启了PIE和CANARRY没有开启NX,堆栈具有可执行权限IDA64载入程序,查看main函数重点分析sub_E30();经过分析得知sub_C56()是一个输出提示信息的函数,sub_B91()是获取用户输入值的函数sub_DC1();sub_DD4();这两个函数的功能未完成仅实现了sub_CA5();sub_DE7();这两个函数,这两个函数实现了添加和删...原创 2020-03-09 16:49:58 · 871 阅读 · 4 评论 -
XCTF-PWN新手区通关手册
XCTF-PWN新手区通关手册题目下载地址:点此下载1.cgpwn2import structimport socketdef p32(value): return struct.pack("<I",value)tcp = socket.socket(socket.AF_INET,socket.SOCK_STREAM)tcp.connect(("111.198.29.45...原创 2020-03-06 16:34:47 · 474 阅读 · 0 评论