xctf-pwn pwn200】的更多相关文章

碎碎念 咕咕咕了好久的Pwn,临时抱佛脚入门一下. 先安利之前看的一个 Reverse+Pwn 讲解视频 讲的还是很不错的,建议耐心看完 另外感觉Reverse和Pwn都好难!! 不,CTF好难!! 之前学C的时候了解过gets()函数很危险 一般笔者会使用如下代码代替gets() scanf("%[^\n]%*c",a); 学了Pwn更直观地感受到了这一点 关于scanf的更多用法详见 https://blog.csdn.net/jeffasd/article/details/807…
pwn200 ---XDCTF-2015 每日一pwn,今天又做了一个pwn,那个pwn呢???攻防世界的进阶区里的一道小pwn题,虽然这个题考察的知识不多,rop链也比较好构建,但是还是让我又学到了一些东西,因为害怕忘记,写个博客记录记录. 1.获取pwn题 啪的一下就下载好了. 2.查看保护 拿到题我不做,哎,我干什么呢,我先查看保护! 裸奔题,开的东西不多,所以这里就看我们发挥了 3.ida看看 首先可以很明显的看到,给的7个变量,在栈中是连续排列的,一开始我还不知道给这里的七个数赋值到底…
题目连接 https://adworld.xctf.org.cn/media/task/attachments/49bd95c78386423997fa044a9e750015 借鉴 https://www.cnblogs.com/deerCode/p/11919638.html https://blog.csdn.net/qq_43986365/article/details/95752798 read存在栈溢出 没有libc,也没有后门函数可以直接调用 用DynELF泄露出system地址,…
0x00: XCTF开赛了,只看了pwn,这次还比较有意思,有x86  x64  arm mips 多种cpu构架的pwn.自己只搞出了pwn200 0x01: 基本信息: x64 动态链接 有调试符号(怪不得是最简单的...) 开启的保护如图可以看到. 运行下,随便给点输入: 经过分析,发现问题出在echo()函数 而且这个bof的payload大概的格式: payload = "A"*24+"BBBBBB"+"\x00\x00" 0x02:…
pwn200 漏洞给的很明显,先是读到了main的局部数组中,然后在子函数中向子函数的局部数组栈里复制. 总体思路是leak system的地址,然后再向一个固定地址写入/bin/sh,最后执行system函数 leak使用pwn库的DynELF实现,整体使用rop链. //ida伪代码 int __fastcall echo(__int64 a1) { char s2[]; // [sp+10h] [bp-10h]@2 for ( i = ; *(_BYTE *)(i + a1); ++i )…
前言 分析的 idb 文件在这: https://gitee.com/hac425/blog_data/tree/master/shanghaictf pwn100 程序是一个经典的 堆管理程序,基本增删改查功能. add 功能很正常,分配8字节的内存然后写入8字节内容.把 分配到的 heap指针存到 table 中,然后 count++ 我们调试看看,使用 add 功能然后 看看堆的内容 可以看到尽管 malloc(8) 实际会分配 0x20 字节(0x10 chunk结构 + 8 + 8 字…
因为最近要去做ctf比赛的这一块所以就针对性的分析一下近些年的各大比赛的PWN题目.主防项目目前先搁置起来了,等比赛打完再去搞吧. 这次分析的是去年的SCTF的赛题,是我的学长们出的题,个人感觉还是很符合套路的:一道栈溢出.一道格式化字符串.一道堆溢出. pwn200 一个栈溢出. 题目给出了libc.保护只有nx. 拿到题后的基本思路就是leak出got表中函数的地址,然后拿libc算偏移算出system的地址.然后用这个地址去覆盖一个函数的got表. pwn300 一个明显的格式化字符串漏洞…
题目链接 PWN200 题目和JarvisOJ level4很像 检查保护 利用checksec --file pwn200可以看到开启了NX防护 静态反编译结构 Main函数反编译结果如下 int __cdecl main() { int buf; // [esp+2Ch] [ebp-6Ch] int v2; // [esp+30h] [ebp-68h] int v3; // [esp+34h] [ebp-64h] int v4; // [esp+38h] [ebp-60h] int v5;…
CGfsb 题目地址:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5050 下载文件后,使用file命令查看. 32位的文件,用ida打开,F5查看伪代码. printf漏洞:https://www.cnblogs.com/cfans1993/articles/5619134.html 思路: 找到pwnme的地址 把pwnme的地址写到s里面 printf输出8个字节,然后用%n把8写入…
xctf - stack2 文件check一下,几乎全开了 运行一下程序,好像很正常呢: 再来一个大的,好像有点儿问题,变1.00了 在ida中查看,在输入的时候没有检查数据大小 可以通过劫持eip获取shell.程序偏移0x84,程序中读取了低位,需要逐位添加地址 system('/bin/bash')地址:0x0804859b #!/usr/bin/env python #coding:utf-8 from pwn import * p = process('./stack2') #p =…