首页 > TAG信息列表 > sendline

[BUUCTF]刷题记录:hitcontraining_uaf

hitcontraining_uaf 1.checksec: 2.ida分析: 1.main函数: ) 2.menu菜单函数: 根据输入的数字提供程序的不同功能,一共有add,delete,print,exit四个功能: ) 3.add函数: 4.free函数: free之后没有将指针置为0,存在uaf漏洞: 5.print函数: 6.magic函数(后门函数): 3.利用思路: 先用add两次申请

利用realloc调整栈使one_gadget生效

前言 当堆题保护全开的时候。PIE保护几乎使得unlink失效(除非能够计算出程序基址),FULL RELEO也使得函数GOT表不可修改。此时常覆盖各种函数的hook为one_gadget来getshell。 我常考虑的顺序是: free_hook->malloc_hook->IO_FILE->exit_hook 若有沙盒限制,则考虑setcontext 当free_

[BUUCTF-pwn] inndy_petbook

写着写着自己都乱了。 菜单很长,块也很大看起来极不方便。 先是建用户和登录这个没啥,然后就是post,每个post会有一个管理块。整理一下大概关系是这样的: 用户块0x220->0x20->0x120->post信息,其中用户块没有溢出,但post有realloc修改,好像就这一个漏洞点。 另外每个头上加了migic:2字节

2020 西湖论剑 pwn mmutag

libc给的是2.23 pie没开 RELRO没开全。 栈地址堆地址都给了。 两个功能 1 2 主功能的free函数有uaf。 直接利用就好。 exp from pwn import * context(os='linux', arch='amd64', log_level='debug') r = process("./mmutag") elf = ELF("./mmutag") libc =

[ZJCTF 2019]Easy Heap

通过ida分析程序可以得知 该程序存在堆溢出漏洞 题目中的后门是假的(利用不了 对堆进行编辑的时候 这里写入内容的大小是可以自定义的 所以这里是存在漏洞的 利用思路: 创建chunk 0 1 2 ,chunk1 写入/bin/sh 同时填入垃圾数据 覆盖到chunk2 的 fd指针的位置(free后)fd指针指向的位置

house of force

House of force是一个堆的小利用技巧,要想利用它需要满足两个条件: 1、可以通过溢出修改 top chunk 的 size 2、分配堆的大小没有限制 通过把 top chunk 的size 改的很大,再malloc一个特定的size,使 top chunk 的位置 恰好在目标位置 -0x10 的位置上,再进行分配时,即可分配至目标地址。

攻防世界 Pwn int_overflow

攻防世界 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

bjdctf_2020_router

bjdctf_2020_router 查看保护 任意命令执行,用;号可以直接运行第二条命令。 from pwn import * context(arch='amd64', os='linux', log_level='debug') file_name = './z1r0' debug = 1 if debug: r = remote('node4.buuoj.cn', 25996) e

write up -- Buu magicheap

简介 buu上的题,着重练习一下堆的解题思路。 附件是64位小端的可执行程序 我们直接ida分析一下吧 这个就是main函数的具体的逻辑是个很明显的菜单题目,一般先看申请堆块的选项,再看free堆块的选项。 我们先来看看申请堆块的选项create_heap() 可以看到除了没有限制申请堆块的大小

(2021网络安全中职组脚本)免费的脚本哦!

是一个nc批量连接的脚本。 #!/usr/bin/dev python import pexpect import threading def netcat():         for ip in range(202,255):         ko=["10000","10001","10002"]         for i in ko:             a = pexpect.spawn("nc 192.168.&quo

BUUCTF 2021-10-4 Pwn

文章目录 保持手感echo分析EXP Pwnme1分析EXP wdb_2018_1st_babyheap分析EXPFSOP houseoforange_hitcon_2016分析前置知识House_of_orangeFSOP EXP zctf_2016_note3分析EXP gyctf_2020_document分析EXP动态调试复现 护网杯_gettingstart分析EXP picoctf_2018_buffer overf

horcruxes

Voldemort concealed his splitted soul inside 7 horcruxes.Find all horcruxes, and ROP it!author: jiwon choi ssh horcruxes@pwnable.kr -p2222 (pw:guest)   题目开启了seccomp,初始随机生成了7个数,有一个ropme函数,让你输入一个数,如果这个数和随机生成的数一样就进入一个函

time_formatter

题目描述:将UNIX时间转换为日期是很困难的,所以玛丽编写了一个工具来完成这个任务。   程序存在UAF漏洞,当选择exit然后不退出时,程序仅仅free掉了两个指针,但没有置空 strdup也会调用malloc来为新字符串提供空间 因此考虑将 __int64 __fastcall print_your_time() { char command[

记一次比赛复现

WEB super_php <?php error_reporting(E_NOTICE); highlight_file(__FILE__); @session_start(); $username = @$_GET['username']; if(!@isset($username['admin'])||$username['admin'] != @md5($_SESSION['username'])) {die(&

stack2

题目来源: XCTF 4th-QCTF-2018 题目描述:暂无     程序在change number功能里面没有对下标进行检验,因此可以任意写地址,因此将返回地址更改即可 这题目有点问题,给的后门函数是system("/bin/bash"),但是调用之后会提示你找不到bash,但是也能做 方法是自己构造调用,将返回地址处更改为p

Mary_Morton

题目来源: ASIS-CTF-Finals-2017 题目描述:非常简单的热身pwn   程序开启了canary保护,因此利用格式化字符串漏洞泄露canary,然后利用栈溢出漏洞将返回地址指向后门函数即可 exp如下: from pwn import * #io = process('./pwn') #io = gdb.debug('./pwn', 'b *0x40093F') io = remo

2021 蓝帽杯半决赛 write up

ciscn_lonelywolf

lonelywolf from pwn import * context.arch = 'amd64' context.log_level='debug' p=process('./pwn') libc=ELF('./libc-2.27.so') #p=remote('124.71.235.219',25196) def add(idx,size): p.recvuntil('Your

2021全国大学生信息安全竞赛WP(CISCN)

CISCN_2021_WP 概述ciscn_2021_lonelywolf总结 概述   作为学习不到一年的练习生,今年第一次参加国赛,本以为题目会比较温柔,但是最后只做出了一道pwn题,本来还有两道pwn题是有机会的,但还是缺少一些知识或者技巧吧,没做出来,然后就结束了。本次国赛pwn题出了一道arm 64位结构

pwny

checksec发现保护全开,程序扔入IDA 发现程序支持两个功能,读和写 读入部分:       其中0x202860为一个文件标识符,对应的是/dev/urandom,获取的是随机数,程序输出0x202060 + 8 * v1 处的数据 写入部分:       允许输入一个v2,程序在0x202060 + 8 * v2处写入一个字长的随机数 发现读

津门杯pwn

目录 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 =

buu [第五空间2019 决赛]PWN5 wp

存在格式化字符串漏洞 经过尝试发现偏移为10 from pwn import * addr=0x804c044 p=remote("node3.buuoj.cn",29172) #%10$n的意思是向偏移为10处所指向的地址处写入已经写的字符数 #即 mov [%10$n] , 字符数 payload=p32(addr)+"%10$n" p.sendline(payload) #p32写入

自动化部署

自动化部署 pexpect Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互;可以用来自动复制

[BUUCTF-Pwn]刷题记录

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

ciscn_2019_n_3

这题和之前做的一个题很像,但是记不清了,也是分开两块chunk分别存data和操作,印象中是这样,那题也是先申请三个然后释放俩,再申请回来,回来的这个的两部分控制好大小,使得分回来的两块chunk来自刚才free的两块chunk的同一部分,放操作的部分,然后就能改变操作函数了,具体记不清了,反正也