picoctf chain 2018 pwn

【pwn】[CISCN 2023 初赛]funcanary --爆破canary和pie

拿到程序先查一下保护状态 可以发现保护全开,再看一下程序的逻辑 可以发现,这里有一个fork函数: C语言中的fork()函数用于创建一个新的进程,该进程是原始进程(父进程)的一个副本。这个副本将从fork()函数之后的代码行开始执行,父进程和子进程在此处分别继续执行不同的代码。fork()函数的返 ......
初赛 funcanary canary CISCN 2023

[HCTF 2018]admin

参考https://www.cnblogs.com/chenxianz/p/14186348.html 师傅的文章,发现此题有多种解法 信息收集 源码中发现提示不是admin 注册账号后在修改密码的页面发现提示 1.session伪造 在index.html发现要将session与admin的ses ......
admin HCTF 2018

docker异常unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain

docker 重装启动异常 INFO[2021-03-09T15:06:20.839195000+08:00] Loading containers: start. INFO[2021-03-09T15:06:20.885624800+08:00] stopping event stream fol ......

[题解] P4435 [COCI2017-2018#2] ​​Garaža

P4435 [COCI2017-2018#2] Garaža 给你一个长度为 \(n\) 的序列 \(a\),单点改,查询区间 \(\gcd\) 不为 1 的子区间个数。 \(n, Q \le 10^5, a_i \le 10^9\)。 先看单次全局查询怎么做。考虑一个分治,每次我们要计算跨过分治中 ......
题解 P4435 4435 2017 2018

【题解】P4768 [NOI2018] 归程 / Kruskal 重构树

补补以前懒得总结的零碎东西。 kruskal 重构树 使用条件:求无向图中两点之间所有路径的最大边权的最小值 构造: 依 kruskal 得到最小生成树 从小到大考虑生成树中的边 \((u, v)\) 对于 \((u, v)\),新建一个结点,作为重构树中 \(u, v\) 的父结点 该结点的点权为 ......
归程 题解 Kruskal P4768 4768

【pwn】[HGAME 2023 week1]choose_the_seat --数组越界,劫持got表

查一下程序保护情况 发现是partial relro,说明got表是可以修改的,下一步看代码逻辑 看到这一段 puts(&seats[16 * v0]);存在数组越界的漏洞,因为上面的代码没有对v0进行负数的限制,v0可以是负数,我们来看一下seat的数据 可以发现seat上面的数据就是got表,s ......
数组 choose_the_seat choose HGAME week1

【pwn】[UUCTF 2022 新生赛]easystack --pie爆破

查看程序保护 发现开了pie: partial write(部分写入)就是一种利用PIE技术缺陷的bypass技术。由于内存的页载入机制,PIE的随机化只能影响到单个内存页。通常来说,一个内存页大小为0x1000,这就意味着不管地址怎么变,某条指令的后12位,3个十六进制数的地址是始终不变的。因此通 ......
easystack 新生 UUCTF 2022 pwn

【pwn】[HUBUCTF 2022 新生赛]ez_pwn --随机数

查一下程序保护状态 保护全开,看一下代码逻辑 逻辑比较简单,就是输入一个用户名,然后进行随机数运算,这里可以使用ctypes模块,形成和服务器那边一模一样的随机数 from pwn import * import ctypes context(os='linux',arch='amd64',log_ ......
随机数 pwn 新生 HUBUCTF ez_pwn

【pwn】[HGAME 2023 week1]simple_shellcode --orw利用攻击

先查看程序的保护状态 可以看到,保护全开,拖进ida看主函数的逻辑 可以看到有个mmap函数: mmap() 函数是Unix和类Unix操作系统中的一个系统调用,用于在进程的地址空间中映射文件或者其它对象。这样做的好处是可以让文件直接映射到内存中,从而避免了频繁的文件 I/O 操作,提高了文件的读取 ......

有var d = new Date('2018-05-09'),可以设置为6月份的操作是?

有var d = new Date('2018-05-09'),可以设置为6月份的操作是? A d.setMonth(7); B d.setMonth(6); C d.setMonth(5); D d.setDate(40); 正确答案:CD d.setDate(n); n表示一个月中的一天的一个数 ......
月份 Date 39 2018 var

题解 P4630 [APIO2018] 铁人两项

具体思路 题目问的是三元组 \((x,z,y)\) 使得 \(x\) 可以到达 \(z\),且 \(z\) 可以到达 \(y\),求三元组 \((x,z,y)\) 的数量。 我们转化一下问题,就是问 \(x,y\) 之间所有不重复路径的点的并集减 \(2\)。 显然,无向图中任意一个点都属于一个点双 ......
题解 铁人 P4630 4630 2018

pwn环境搭建脚本

目录pwn环境搭建脚本 pwn环境搭建脚本 分享在ubuntu系统上一站式搭建pwn环境的脚本。 安装脚本如下,挂着梯子的情况下可以直接使用国外的官方源,建议安装的ubuntu系统版本至少为ubuntu:18.04,用可使用sudo命令的普通用户安装而不建议直接使用root用户安装。 如果无法访问国 ......
脚本 环境 pwn

使用docker调试和部署pwn题

目录使用docker调试和部署pwn题0x0 前言0x1 调试环境0x2 出题模板0x3 使用技巧 使用docker调试和部署pwn题 使用docker快速部署不同架构、不同版本的调试环境。给出docker环境下pwn题部署模板。 0x0 前言 关于docker的基础概念不做过多的介绍。可以到Doc ......
docker pwn

队内pwn训练营资料分享

目录队内pwn训练营资料分享前言培训材料写在最后 队内pwn训练营资料分享 分享队内第一期 pwn 训练营的资料。 前言 为了提升队内师傅的 pwn 技巧,之前在内部举办了一次为期约两个月的 pwn 训练营。从结果来看,培训后师傅们的能力有着显著的提升,此次训练营取得了预期的效果。 本着开源与共享的 ......
训练营 资料 pwn

[Python]PIL-CVE-2018-16509 复现

[Python]PIL-CVE-2018-16509 复现 这个问题跟上一个差不多。 exp: %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: -0 -0 100 100 userdict /setpagedevice undef save legal { null r ......
PIL-CVE Python 16509 2018 PIL

sniperoj-pwn100-shellcode-x86-64

来源 本题来自ctfi-wiki,是基本ROP中shellcode的一道例题 查看保护 程序只开启了位置无关保护 PIE 并且有可写可执行的段 反汇编 发现程序中直接输出了buf的地址,所以PIE就不起作用了 可以看到,后面read函数还调用了buf,很显然就是要利用buf这个段了 然后在汇编代码发 ......

【pwn】ez_pz_hackover_2016 --pwngdb和pwntools的结合,动态调试

首先checksec 没开nx,说明堆栈可执行,初步考虑需要shellcode,然后拖进ida看主函数逻辑 看chall函数 printf("Yippie, lets crash: %p\n", s)这里泄露的s的地址,即栈上的地址 这里的输入的s数组是不存在栈溢出的,这里的关键代码是这一段 res ......

2016 CCTF pwn3

本题来自ctf-wiki,是一道 hijack GOT的例题 确定保护机制 发现主要开启了NX保护 分析程序 用ida反汇编一下,这个程序主要是实现了用正确用户名、密码登录FTP,具有get、put、dir三个基本功能 首先是第一个函数ask_username,发现它读取我们键入的字符串,并且每个字 ......
2016 CCTF pwn3 pwn

BUUCTF_Crypto_WriteUp | [AFCTF2018]Morse

题目 -..../. /-..../-..../-..../...--/--.../....-/-..../-..../--.../-.../...--/. /--.../...--/.. /--.../--.../....-/...../..-./--.../...--/...--/ /..... ......

[NewStarCTF WEEK5] pwn-planet 详解

这道题目更多是考pwner的逆向功底(虽然程序逻辑也不是非常复杂=_=) 老规矩,先checksec查看程序 保护全开 看一下main函数 __int64 __fastcall main(int a1, char **a2, char **a3) { unsigned int v4; // eax ......
NewStarCTF pwn-planet planet WEEK5 WEEK

鹏城杯2023初赛 pwn(未完)

silent 打开ida一看,没有输出函数,只有一个栈溢出。跟巅峰极客的linkmap有点像,都是没有输出函数而且full relro,没法打ret2dl_resolve 但是linkmap那道题中是有能函数能将地址放到bss上的,所以它可以把read的地址放到bss上,然后通过修改bss上的rea ......
初赛 2023 pwn

【pwn】整数溢出

这是ctfshow上面的一道题 这边v1和v2定义时都是int,有符号整数,想让v1-v2=9,可以考虑负数,但是这个函数过滤了负号 if ( strchr(s, 45) ) return 0LL; 可以考虑输入比较大的数有符号溢出成负数, 输入4294967295的话,就会解析成-1,然后8-(- ......
整数 pwn

P9801 [NERC2018] King Kog’s Reception

题目传送门 前置知识 线段树 解法 第一眼感觉和 luogu P1083 [NOIP2012 提高组] 借教室 很像。本题同样采用线段树维护,\(sum_{l,r}(1 \le l \le r \le 10^6)\) 表示从 \(l \sim r\) 时刻内骑士拜访的总时间,\(maxx_{l,r} ......
Reception P9801 9801 2018 NERC

Objectarx Wizards 2010中添加成员变量功能移植到Objectarx Wizards 2018中

——工欲善其事必先利其器 虽然AutoCAD Objectarx代码没写几行,但对于Objectarx Wizards的折腾却不能少。 这几天学习Com封装,找到一篇文章(教程),学习过程中发现原来Objectarx Wizards中添加成员变量的功能不错,可惜在高版本中给阉割了,于是想着能不能把此 ......
Objectarx Wizards 变量 成员 功能

鹏程杯子2023 pwn

主要就是修改stdin的最后几位,使他变为write,然后泄露libc,为所欲为即可。 本人是卡在不知道stdin那里可以修改。 然后使用一下jmp qword rbp这个gadget 0x400a93那个。 from evilblade import * context(os='linux', a ......
杯子 2023 pwn

[BUUCTF 2018]Online Tool

[BUUCTF 2018]Online Tool <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR']; } if(!isset( ......
BUUCTF Online 2018 Tool

pwn环境部署

PWN环境搭建 前言:自己开始学pwn时使用的是kali,稀里糊涂的配了点东西就用用了,后面都是用ctfshow配置好的集成环境,招新赛时有同学问我如何部署pwn环境,出现的各种问题令人鸡肋,于是就诞生了这 集各种博客的博客 tips: 1 建议新手按1 、2(3)、5、6、9、10、11走 2 如 ......
环境 pwn

CTF-pwn-堆入门-day1

什么是堆 堆是可以根据运行时的需要进行动态分配和释放的内存,大小可变 由程序员决定 malloc new\free delete 栈用于函数分配固定大小的局部内存 由程序决定 但是为什么不都在栈上进行函数调用,反而要去对上进行调用 堆的实现重点关注内存块的组织和管理方式,尤其是空闲内置块:(分地) ......
CTF-pwn day1 CTF pwn day

【pwn】ciscn_2019_s_3 -- rop,gadget利用,泄露栈地址

这道题挺好的,可以帮助我更好的理解gadget的利用以及rop技术 首先,查一下程序保护情况 拖进ida分析 这里sys_read和sys_write是系统调用函数,看汇编可以分析出来 我们首先要了解一下64位系统的系统调用 传参方式:首先将系统调用号 传入 rax,然后将参数 从左到右 依次存入 ......
地址 gadget ciscn 2019 pwn

在一个简单的pwn题目中探究执行系统调用前堆栈的对齐问题

题目介绍:在输入AAAAAAAAAAAAAAAAAAAAAAAAA后,程序会打开一个shell,这是为什么?字符串中的A能否更换为@? 1.程序接收输入AAAAAAAAAAAAAAAAAAAAAAAAA 获得shell的原理: .text:0000000140001584 public vuln . ......
堆栈 题目 问题 系统 pwn