首页
论坛
课程
招聘
ROP-Ret2Shellcode-32位实例

零基础入门PWN

该课程为付费课程,如需学习完整课程请购买
6263

上一节 :
下一节 :
章节评论 (5)
tboom 2020-4-2
 举报
老师您好,我想问一下
push  0x68
push  0x732f2f2f
push  0x6e69622f
为什么不能用
push  0x68732f
push  0x6e69622f
代替?这样读出来应该是/bin/sh,并没有在中间添加00也不需要添加/。我这样尝试的时候发现结果有$符号,但是运用ls并没有结果而是直接退出了。请问为什么这样不可以呢?
【讲师回复】 这个问题问的好,在很多漏洞利用场景中, shellcode 的内容将会受到限制,例如你不能输入 \x00 这个字符,编辑框不能输入 \x0d \x0a这样的字符,0x68732f2f2f6e69622f表示的ASCII是 hs///nib/ ,而x68732f6e69622f表示的是hs/nib/,表面上看只是两个反斜杠的区别,但这里需要保证binsh要以00结尾,因此需要在汇编中写入代码手动将其调整为 0,所以要用第一种
2020-4-3
Roger 2020-4-3
 举报
@tboom  这个问题挺重要的,给你更新了一节课,你可以看一下,https://www.kanxue.com/book-57-955.htm
xiaofei0115 2020-4-26
 举报
老师,如果我想泄露局部变量s地址,将shellcode写到s上执行。思路应该是如何做啊?
【讲师回复】 泄露局部变量地址,利用格式化输出函数,或者其他IO函数来泄露。将shellcode写到上面,不建议这么做,您继续往后看,可以覆盖到bss段结尾
2020-4-27
hack_xolin 2021-2-23
 举报
老师,为什么我将ret的返回地址写成栈中地址0xffffd0ec也就是payload在栈中的地址时,可以返回$,但是操作一下就失败了呢。好像栈也是有执行权限的吧?求解
【讲师回复】 那就是没有成功,你得调试一下,看看是什么原因导致的
1天前
域名:加速乐 | SSL证书:亚洲诚信 | 安全网易易盾| 同盾反欺诈| 服务器:绿盟科技
©2000 - 2021 看雪学院 / 沪ICP备16048531号-1 / 沪公网安备 31011502006611号