首页
社区
课程
招聘
未解决 [求助]pwn遇到的一些神奇问题!
2021-1-15 11:26 1762

未解决 [求助]pwn遇到的一些神奇问题!

2021-1-15 11:26
1762

刚学习pwn题目一个星期,半吊子,没有代码基础,靠模糊看代码和一些刷题套路解题
问的问题非常奇葩,但却是我的阻碍,求大佬解惑

 

问题1:
32位和64位
(这里乘号我用x代替一下)
比如b'a'xoffset+p32(sys_addr)+b'a'x4+p32(binsh_addr)
中间插着b'a'x4有时候会搞混,不知道是用来干啥的?

 

问题2:
先拿flag还是先getshell
看大佬们刷题基本是先拿flag,当自己操作时想试试先getshell,弄了半天也getshell不成功

 

问题3:
if(pwnme==8)和if(pwnme==1853186401)这样的为啥有点区别
解题时候一个是直接传入p64(addr地址)一个是传入p64(1853186401)

 

图片描述
图片描述

 

问题4:
是用elf找地址好用吗,咋有的准确,有的不准确?同一个题目是pwn.asm生成shellcode呢,还是用elf找到system和传入binsh呢?

 

问题5:
这个就是我现在遇到的问题,这里有栈溢出漏洞吗?有办法不通过那个if直接ret到sub_C3E();吗
图片描述

 

图片描述


[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

最后于 2021-1-15 12:10 被pwnooooo编辑 ,原因: 新增一个图片
收藏
免费 0
打赏
分享
最新回复 (3)
雪    币: 118
活跃值: (118)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
此恨不关风月 1 2021-1-15 11:38
2
0

问题1: 中间那个是用来做 system 的返回地址的(建议熟悉一下函数调用约定 

问题2: 这取决于题目情况了, 拿shell 不也能拿flag 


问题3: 没看懂你这个问题在问啥? 在问python 的数字和字符串的区别?

问题4:ELF模块挺好用的 ,用不用shellcode 取决于你有没有执行shellcode 的条件,以及建议你从头学一下
从 ret2shellcode 再学一下 ret2rop 比较这俩的区别

问题5 gets 这个地方看起来是有栈溢出的, 看起来是个随机数预测? 建议上传原文件

最后于 2021-1-15 11:38 被此恨不关风月编辑 ,原因:
雪    币: 25
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
pwnooooo 2021-1-15 11:46
3
0
此恨不关风月 问题1: 中间那个是用来做 system 的返回地址的(建议熟悉一下函数调用约定 问题2: 这取决于题目情况了 ...

谢谢大佬回复
问题1:也是就是说如果32位,中间是‘a’x4   ,  64位的话就是'a'x8吗?,我有时候用p32(0),p64(0)也可以
问题3:这个问题是我刷了两个题目,一个是传入的pwnme地址,一个是直接字符串相等就下一步了
问题5:我看了wp,他们都是用的v7覆盖send,但是我想能不能用个gets栈溢出直接跳转到sub_C3E()进行cat /flag

最后于 2021-1-15 11:48 被pwnooooo编辑 ,原因:
雪    币: 118
活跃值: (118)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
此恨不关风月 1 2021-1-15 18:50
4
0
pwnooooo 此恨不关风月 问题1: 中间那个是用来做 system 的返回地址的(建议熟悉一下函 ...
问题1 :
>>> p32(0)
b'\x00\x00\x00\x00' 
因为 32位地址是 32字节对齐的 所以, p32(0)  和 "A" * 4 是效果是一样的 ,

另外 32 位和 64 位构造 rop 链调用参数不一样所以你放的 ”A"*4 和 “A"*8 的相对位置是不一样的

问题3 
??? 还是没懂

问题4
还是没懂

问题5 
你要溢出就要覆盖返回地址 你在走到返回地址之前就可能 exit掉了
游客
登录 | 注册 方可回帖
返回