SCTF2014_pwn400 writeup

int sub_804874A()
{
  unsigned __int8 v1; // [sp+1Fh] [bp-9h]@2

  write(1, "1.New note\n", 0xBu);
  write(1, "2.Show notes list\n", 0x12u);
  write(1, "3.Show note\n", 0xCu);
  write(1, "4.Edit note\n", 0xCu);
  write(1, "5.Delete note\n", 0xEu);
  write(1, "6.Quit\n", 7u);
  write(1, "option--->> ", 0xCu);
  do
    v1 = getchar();
  while ( v1 == 10 );
  return v1;
}

函数作用:

1.新建一个note。

2.遍历note。

3.查看note,会输出note的首地址。

4.编辑note的content,其中将输入的内容strcopy到content中发生溢出。

5.删除一个note,双向链表的指针更改时,可以实现DWORD SHOOT。

note结构:

4字节:指向自己的指针

4字节:flink

4字节:blink

64字节:title

32字节:type

256字节:content

delete函数:

free()成为shellcode跳板

思路:

要卸载中间note,所以先建立3个note。(其实两个也行,将第一个note的content伪装成note头)

在建立第三个note时将shellcode写入content。

布置要卸载的note的头部(自身地址、flink中写入shellcode地址、blink中写入free()got表地址)

我将node2的content布置为node头部

l32(ptr2+108)+l32(ptr3+108)+l32(free_got_addr-4)

ptr2+108  为node2的content起始地址

ptr3+108  为node3的content起始地址,即是shellcode地址

找到GOT表中free()函数指针

v1+4=free_got_addr

*(free_got_addr)=shellcode__addr

v1=free_got_addr-4

exp:https://github.com/Minxin/exploit/blob/master/SCTF2014_pwn400.py

 

时间: 2024-11-11 09:44:25

SCTF2014_pwn400 writeup的相关文章

2016第七季极客大挑战Writeup

第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{We1c0m3_To_G33k_2O!6} 并且可以知道后边的题的Flag格式为 SYC{} 2.xiao彩蛋 题目提示关注微博,从Syclover Team 博客(http://blog.sycsec.com)可获取到三叶草小组微博,私信发送flag后即可得到. 3.闪的好快 一开始拖进PS分帧数

Jarvis OJ - class10 -Writeup

Jarvis OJ - class10 -Writeup 转载请注明出处:http://www.cnblogs.com/WangAoBo/p/7552266.html 题目: Jarivs OJ的一道misc,记录这道题的Writeup主要是想记录解题的脚本 分析: 文件下载后是纯数据,binwalk发现为两段zlib压缩后的数据,其中第2段为default compression,这是信息1:strings查看字符串,发现IHDR, RGB, IDAT等和图像相关的字符,这是信息2: 步骤:

Jarvis OJ Pwn writeup

Jarvis OJ Pwn writeup1.[XMAN]level02.[XMAN]level13.[XMAN]level2(简单64位栈溢出)4.[XMAN]level2(x64)5.[XMAN]level3(32位下两次溢出拿shell)6.[XMAN]level3_x64(基本64位栈溢出,简单ROP)7.[XMAN]level4(DynELF泄露system地址)8.[XMAN]level5(mprotect函数)9.Test Your Memory(简单栈溢出,覆盖返回地址)10.S

Redtiger Hackit Writeup

RedTiger's Hackit Level 1 Welcome to level 1 Lets start with a simple injection. Target: Get the login for the user Hornoxe Hint: You really need one? omg -_- Tablename: level1_users 通过http://redtiger.labs.overthewire.org/level1.php?cat=1 and 1=1 发现c

2017 redhat web writeup

2017 RedHat Web writeup1.thinkseeker2.PHPMyWIND3.后台 2017 RedHat Web writeup 1.thinkseeker 这题考两个点 1.用with rollup过前面两个if 2.用盲注找到flag 关于第一点在实验吧有原题:http://www.shiyanbar.com/ctf/1940 过滤方法稍有不同,用操作符代替关键字即可.token使用变量覆盖就可以. 第二点就是infoid这个参数有盲注,跑脚本可以拿到flag. 这是脚

2017年陕西省网络空间安全技术大赛——人民的名义-抓捕赵德汉2——Writeup

下载下来的文件是一个jar包,用die和binwalk检查,确实是一个纯正的jar包 java -jar FileName运行jar包,观察文件的外部特征,发现也是判断password的题目 ? 用查看jar包的工具jd-gui查看反编译的代码 大致浏览打码,发现UnitTests中的main函数很可疑,该段代码如下: public static void main(String[] args) { JFrame frame = new JFrame("Key check"); JBu

0ops CTF/0CTF writeup

0×00 0CTF『第一届0ops信息安全技术挑战赛,即0ops Capture The Flag,以下简称0CTF. 0CTF由上海交通大学网络信息中心和上海市信息安全行业协会指导,由上海交通大学信息网络安全协会承办,是2014信息安全技能竞赛校园赛首站.0CTF注册与参赛地址为http://ctf.0ops.net. 比赛时间为北京时间2014年3月1日至2日,每天7时至23时,共32小时.』 看官方微博,这个比赛本来是面向上交校内的,就是校外可以做题但是不发奖,后来也给校外发奖了,整体感觉

南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup

南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup 题目描述 文件下载地址 很明显,文件之间进行亦或就可得到flag,不再多说,直接上脚本 1 #coding:utf-8 2 file_a = open('密文.txt', 'rb') 3 file_b = open('明文.txt', 'rb') 4 ? 5 str_a = ''.join(file_a.readlines()) 6 str_b = ''.join(file_b.readlines()) 7 ? 8 ans =

31C3 CTF web关writeup

0x00 背景 31c3 CTF 还是很人性化的,比赛结束了之后还可以玩.看题解做出了当时不会做的题目,写了一个writeup. 英文的题解可以看这:https://github.com/ctfs/write-ups/tree/master/31c3-ctf-2014/web 0x01 pCRAPp 1 PHP is nasty crappy sometimes, just pwn it http://188.40.18.69/ 这题需要好多php技巧组合起来.过关需要这样提交. 1 http: