ICode9

精准搜索请尝试: 精确搜索
  • CTF-PWN练习之绕过返回地址限制2022-01-06 10:04:58

    目录 预备知识一、相关实验二、__builtin_return_address函数三、理解多层跳转 实验目的实验环境实验步骤一源码审计 实验步骤二使用gdb调试程序 实验步骤三发起溢出攻击 预备知识 本实验要求实验者具备如下的相关知识。 一、相关实验 本实验要求您已经认真学习和完成了

  • ctfshow 摆烂杯 pwn2022-01-05 22:31:08

      半年没做过pwn题了,试着用这个比赛的题来捡一捡知识点。 dota   main函数中需要绕过两个判断才能进入存在漏洞的函数。   第一个判断很简单,输入“dota”就行了。   第二个判断,需要先让v5小于0,在经过v5=-v5之后,继续让v5小于0,看看汇编是怎么样的。 NEG是汇编指令中的求

  • [BUUCTF-pwn] bssidessf_ctf_2020_adding_machine2022-01-05 22:02:13

    难度不大,要求输入n个数,但栈空间只能放127个数,要求输入数<127但可以输入负数,其它地址在输入debug时可以全部得到。 这里由于没有中途退出机制,需要精确的输入一个负数表示执行次数 v6 = get_long("Number of numbers to add"); if ( v6 <= 127 ) { get_data(v8, (unsign

  • [BUUCTF-pwn] hackcon2018_elegent2021-12-31 21:03:22

    难度不大,坑点巨多。 全程没几句话,一个明显的printf+溢出 int __cdecl main(int argc, const char **argv, const char **envp) { char format[64]; // [rsp+10h] [rbp-40h] BYREF printf("Hola %s bois\n", "sup"); puts("Give me some inputz: "); fflus

  • 【pwn学习】格式化字符漏洞2021-12-29 14:59:49

    文章目录 什么是格式化字符漏洞格式化字符串函数格式化字符串 利用泄露内存例题 利用格式化字符串漏洞获取libc基址 覆盖内存栈地址覆盖小数覆盖大数覆盖轮子 什么是格式化字符漏洞 格式化字符串函数可以接受可变数量的参数,并将第一个参数作为格式化字符串,根据其来解析

  • 攻防世界 Pwn int_overflow2021-12-25 12:33:56

    攻防世界 Pwn int_overflow 1.题目下载地址2.checksec2.IDA分析4.exp 1.题目下载地址 点击下载 2.checksec 没有canary没有PIE 2.IDA分析 在check_passwd函数中有一个strcpy函数当v3>3u且v3<8u进入else。else中把s的值复制到dest,如果s的值够长,就能造出栈溢出。但是3<v3

  • 通过一道简单的例题了解Linux内核PWN2021-12-23 20:33:01

    写在前面 这篇文章目的在于简单介绍内核PWN题,揭开内核的神秘面纱。背后的知识点包含Linux驱动和内核源码,学习路线非常陡峭。也就是说,会一道Linux内核PWN需要非常多的铺垫知识,如果要学习可以先从UNICORN、QEMU开始看起,然后看Linux驱动的内容,最后看Linux的内存管理、进程调度和文件

  • 第二届“祥云杯”pwn_note2021-12-23 13:01:50

    这题是格式化字符串漏洞 + House Of Orange + __malloc_hook 组合利用,难度倒也不是很难,对于我这种新手学到了不少东西。 但是我觉得这里并不是的格式化字符串漏洞,倒不如说是故意构造的逻辑漏洞,姑且称它为格式化字符串漏洞吧。 思路: house of orange:通过修改 top chunk 的 siz

  • [BUUCTF-pwn] fl0ppy_codegate_20162021-12-22 20:33:35

    一个不算复杂的问题把自己整晕了 程序虽然用到堆但是与堆无关,有两个floppy可选,功能有选择盘,写入(建堆块写入指针,desc写内容),show和修改4个功能。其中修改的时候desc原长度为0xc实际可写入0x25有个溢出。并且长度足够情况下strncpy并不带尾部的\0  char *__cdecl m4edit(int a1) {

  • 再读:Linux系统命令及Shell脚本实践指南(二)2021-12-21 10:01:36

      再读:Linux系统命令及Shell脚本实践指南(二) 第十章 正则表达式 linux命令下的正则规则和其他语言的规则类似 大多时候与 grep结合使用,比如 grep 'ro.t' 通配符使用:cat *.txt,ls fla?.txt ls [a-c].txt,ls [^a-c].txt   第十一章 shell编程概述 图11-1显示了Shell在操作系统中的

  • [BUUCTF-pwn] ciscn_2019_ne_42021-12-20 18:04:28

    漏洞点: 在edit里,长度检查里如果长度比原长度大10则返回原长度+1 off_by_one __int64 __fastcall sub_E3C(int a1, unsigned int a2) { __int64 result; // rax if ( a1 > (int)a2 ) return a2; if ( a2 - a1 == 10 ) LODWORD(result) = a1 + 1; else LODWO

  • 攻防世界 Pwn forgot2021-12-18 22:06:32

    攻防世界 Pwn forgot 1.题目下载地址2.checksec3.IDA4.exp 1.题目下载地址 点击下载 2.checksec 没有canary,可以随便溢出 没有PIE。可以随便使用后门函数 3.IDA 可以看到有两个溢出点 第一处限制了输入大小,我们就不管了 第二处是一个简单的溢出 只要知道需要覆盖多少by

  • buuctf pwn jarvisoj_fm2021-12-16 19:35:24

    IDA查看 int __cdecl main(int argc, const char **argv, const char **envp) { char buf[80]; // [esp+2Ch] [ebp-5Ch] BYREF unsigned int v5; // [esp+7Ch] [ebp-Ch] v5 = __readgsdword(0x14u); be_nice_to_people(); memset(buf, 0, sizeof(buf)); read(0, bu

  • Buuctf 刷题笔记(PWN)(1)2021-12-09 07:31:26

    Buuctf 刷题笔记(PWN)(1) pwn1_sctf_2016 1、先使用checksec检查安全选项、再用IDA进行反编译 找到get_flag() 那么这道题可能就是ret2text类型了,直接利用栈溢出到返回地址进行覆盖,进而执行get_flag()就可以了 vuln()函数将我们的输入字符串,对I进行转换,将一个I转换成了you 根据

  • ctfshow pwn pwn02 同时也作为入门题目无比细致讲解分析 真0基础入门2021-12-05 12:34:41

    pwn 正所谓万事开头难,打开这篇文章也将可能成为你进入pwn世界的叩门石。由于本文过于详细,会耽搁大佬很多时间,同时本人学识尚浅,如有错误请指正。 我们先打开题目 launch an instance创建容器,创建容器后就会显示相应的host与port stack是可以下载的附件,就是我们要寻找漏洞的程序,点

  • PWN入门系列(2)栈溢出2021-12-02 23:33:21

    PWN入门系列(2) 栈溢出 栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变(覆盖)。是一种特定的缓冲区溢出漏洞,类似的还有heap、bss溢出等。其前提是: · 程序必须向栈上写入数据程序对某个函数或者某个模块

  • [BUUCTF-pwn] serial_codegate_20162021-12-01 20:02:32

    跟堆无关也不关栈的事。 程序先在堆里开了片地,然后自己写。每个消息读入0x20字节,在0x18放个函数指针,正好写入数据时能写到函数指针上。 基本思路:         先把函数覆盖为printf,数据写'%p,'*8这样打出内存值找个libc里的地址得到libc,删掉再写/bin/sh;xxxx+system运行的时候就

  • PWN保护机制详解2021-11-29 18:01:09

    对pwn过程中遇到的保护机制做一下详解与归纳。 Stack Canaries 放一篇写的好的:PWN之Canary学习 - sarace - 博客园 (cnblogs.com) 简介 stack canaries取名自地下煤矿的金丝雀,能比矿工更快发现煤气泄露,有预警的作用。这个概念应用在栈保护上则是在初始化一个栈帧时在栈底设置一

  • [BUUCTF-pwn] pwnable_secret_garden2021-11-26 20:02:01

    这个题本身没有难度,小难点在one_gadget+realloc偏移 堆题全保护就不用说了,漏洞在free时没有删指针 int m3free() { int result; // eax _DWORD *v1; // rax unsigned int v2; // [rsp+4h] [rbp-14h] BYREF unsigned __int64 v3; // [rsp+8h] [rbp-10h] v3 = __readfs

  • [BUUCTF-pwn] inndy_mailer2021-11-24 22:02:21

    这个题呀,一言难进,原来作过一个类似的,一个坑忘了,第二次还是跳了。作不出来,搜exp。 但有必要记录一下 32位,got可写,有可写可执行段,PIE打开,无canary,基本是保护全关了。 [*] '/buuctf/402_inndy_mailer/pwn' Arch: i386-32-little RELRO: Partial RELRO Stack:

  • pwn-这里等学完堆再来记详细笔记2021-11-19 20:02:03

    这题就简单的记录下吧。 也不是很难,就是几个点,反之现在每做个题都能get到新知识 嗯 题目我简单的分析了下大概就是5个选项,我记得每次这种题就是靠你逻辑,每个选项都是有用的,代码量少的题目不会有无用代码 每个选项就如puts函数提示所说有着对应的功能,这里说下每个函数注意的

  • pwn | not_the_same_3dsctf_20162021-11-17 20:02:18

    not_the_same_3dsctf_2016 栈溢出ret2text rop main 存在后门: 将文件写进bss段的全局变量 控制一下执行流程ret2write然后输出这个变量就行了 exp: from pwn import * import time context.log_level = 'debug' sh = remote('node4.buuoj.cn', 26446) p_backdoor = 0x080489

  • [BUUCTF-pwn] xp0intctf_2018_gameserver2021-11-17 19:58:59

    snprintf 函数错用造成栈溢出漏洞 32位程序,没有canary ,又是一个rop的题 先看程序: puts("First, you need to tell me you name?"); fgets(byte_804A180, 256, stdin); v4 = strrchr(byte_804A180, 10); if ( v4 ) *v4 = 0; printf("Hello %s\n", byte_804A180); p

  • pwn | get_started_3dsctf_20162021-11-17 19:33:41

    get_started_3dsctf_2016 ret2text 坑爹题,程序异常结束就无回显,得跳转到exit函数 exp: from pwn import * import time context.log_level = 'debug' sh = remote('node4.buuoj.cn', 25656) p_getflag = 0x80489a0 p_main = 0x08048A20 p_exit = 0x0804E6A0 # sh.rec

  • pwn | bjdctf_2020_babystack2021-11-17 19:31:27

    bjdctf_2020_babystack ret2text exp: from pwn import * import time context.log_level = 'debug' sh = remote('node4.buuoj.cn', 27865) p_backdoor = 0x00000000004006E6 sh.recv() sh.send(b'100\n') sh.recv() payload = 0x

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

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

ICode9版权所有