【Pwn】maze - writrup】的更多相关文章

[pwn]学pwn日记--栈学习(持续更新) 前言 从8.2开始系统性学习pwn,在此之前,学习了部分汇编指令以及32位c语言程序的堆栈图及函数调用. 学习视频链接:XMCVE 2020 CTF Pwn入门课程.[星盟安全]PWN系列教程(持续更新) 学习文章链接:CTF Wiki 文章内题目连接(带exp.py):pwn题目 elf文件 未初始化的全局变量glb,编译出来在内存中bss中 初始化的全局变量str(没有被修改过),编译出来在内存中data 而hello world在text段中…
[pwn]DASCTF Sept 月赛 1.hehepwn 先查看保护,栈可执行,想到shellcode 这题需要注意shellcode的写法 拖入ida中分析 一直以为iso scanf不能栈溢出,后来发现我是shabi 先进入sub_4007F9()函数 有个read函数,恰好读完s数组,由于printf是碰到\x00截断,所以如果我们输满0x20个padding就可以读取一个栈地址 我们可以把shellcode写入scanf输入的地址中,通过创建fake ret地址进行rip迁移,而这个栈…
[pwn]V&N2020 公开赛 simpleHeap 1.静态分析 首先libc版本是ubuntu16的2.23版本,可以去buu的资源处下载 然后checksec一下,保护全开 拖入IDA中分析 去除了符号表,通过menu函数分析出有add.edit.show.delete 1.add() add函数分析一遍,发现没什么漏洞,就是普普通通的输入一个需要申请的size(空间大小),然后再向这个malloc的空间中输入content(内容),其中size不能大于111(0x6F). 2.edit…
[pwn]学pwn日记(堆结构学习) 1.什么是堆? 堆是下图中绿色的部分,而它上面的橙色部分则是堆管理器 我们都知道栈的从高内存向低内存扩展的,而堆是相反的,它是由低内存向高内存扩展的 堆管理器的作用,充当一个中间人的作用.管理从操作系统中申请来的物理内存,如果有用户需要,就提供给他. 2.了解堆管理器 注意:linux使用glibc 这里有两种申请内存的系统调用: brk mmap 第一种brk,是将heap下方的data段(bss属于data段),向上扩展申请的内存. 第二种mmap,其实…
[pwn]攻防世界 pwn新手区wp 前言 这几天恶补pwn的各种知识点,然后看了看攻防世界的pwn新手区没有堆题(堆才刚刚开始看),所以就花了一晚上的时间把新手区的10题给写完了. 1.get_shell 送分题,连接上去就是/bin/sh 不过不知道为啥我的nc连接不上... 还是用pwntool的remote连接的 from pwn import * io = remote("111.200.241.244", 64209) io.interactive() 2.hello pw…
前言|与BROP的相遇 第一次BROP,它让我觉得pwn,或者说网安很妙,也很折磨 在遇到它之前,之前接触的题目都是简单的栈溢出,感觉没有啥有趣的,很简单,找gadget溢出就可以,一切都看得见 可遇到它之后,这是真的折磨,一切都是未知 但是因为未知,所以产生了美感,或许是因为摸不着,所以才有一种神秘的魔力一点点吸引我学pwn 题目:buuctf-axb_2019_brop64 因为为了更好的分享体验(防止翻车) 我已经将题目部署在了本题,并且自己修改了一下flag的趣味性 后面我会在本地进行盲…
Portal --> hdu4035 Solution 讲道理不是很懂为啥概d那么喜欢走迷宫qwq (推式子推的很爽的一题?) 首先大力dp列式子 用\(f[i]\)表示从\(i\)到离开的期望步数,\(du[i]\)表示\(i\)点的度数,那么可以得到: \[ f[i]=e_i* 0+k_i* f[1]+\frac{1-e_i-k_i}{du[i]}\sum(f[u]+1) \] 其中\(u\)是\(i\)的儿子 稍微整理一下,对于叶子节点和普通节点我们可以分别得到这样的两条式子: \[ \b…
Portal --> cf123E Solution 首先步数的话可以转化成每条边经过了几次这样来算 假设现在确定了起点\(S\)和终点\(T\),我们将\(T\)看成树根,那么考虑边\((u,v)\)的经过次数可以分成下面三种情况: 1.\((u,v)\)在\(S\)到\(T\)的路径上,那么这条边肯定要被经过,期望为1 2.\((u,v)\)不在\(S\)到\(T\)的路径上,但是在\(T\)包含\(S\)的那个儿子的子树里面,那么这条边有两种情况:被经过\(2\)次或者不被经过 考虑一下经…
Description 考虑一个 N×M 的网格,每个网格要么是空的,要么是障碍物.整个网格四周都是墙壁(即第1行和第n行,第1列和第m列都是墙壁),墙壁有且仅有两处开口,分别代表起点和终点.起点总是在网格左边,终点总是在网格右边.你只能朝4个方向移动:上下左右.数据保证从起点到终点至少有一条路径. 从起点到终点可能有很多条路径,请找出有多少个网格是所有路径的必经网格. Input 第一行包含两个整数 N,M ,表示网格 N 行 M 列. 接下来 N 行,每行 M 个字符,表示网格.'#'表示障…
[南京邮电]maze 迷宫解法 题目来源:南京邮电大学网络攻防训练平台. 题目下载地址:https://pan.baidu.com/s/1i5gLzIt (密码rijss) 0x0 初步分析 题目中给出的执行文件是64位ELF可执行文件,可在64 位 Ubuntu下运行.这是一道简单的迷宫类型题目,通过静态分析即可获得flag. 在main函数中,能发现一段字符串 ******* * **** * **** * *** *# *** *** *** ********* 为了方便阅读: 空格替换为…