返回信息流OD实验!在输入中有十六进制的00。是不是计算机把00当成null了,00后边的内容全是0。如果输入中含有0x00该如何破???谢谢!
这是一条镜像帖。来源:北邮人论坛 / security / #35814同步于 2013/3/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Security机器人发帖
[问题]输入十六进制0x00
renyi
2013/3/23镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
那个不是还是需要标准IO来写么?只要出现了0x00肯定出问题啊。其实,CALL的内容随着加载地址变化,那个地址感觉还是要动态地来做,真TMD蛋疼
【 在 hexiaonan 的大作中提到: 】
: bd,我的想法是堆栈写入jmp某个地址,在跳回去。。。。这是我理解的。。。。可能和你的问题无关。。。。
现在信安实验都这么高级了么。。。听上去好像是字符串输入带shellcode的节奏啊
输入类型是字符串的shellcode的话,优先是要避开0x00,不然会被当成\0而中断字符串,如果实在无法避免可以对shellcode进行编码,常用算法是xor一下,这样0x00就不是0了,真正的shellcode执行前再xor一下解码。
敢觉很坑,绕过的方法不是没用过。就是发现那个地方的代码除了jmp到某个地址外,其他的都会被跳板返回的那部分合并为一个代码。至今还没绕过,哎~~~不知怎解
【 在 smilefufu 的大作中提到: 】
: 现在信安实验都这么高级了么。。。听上去好像是字符串输入带shellcode的节奏啊
: 输入类型是字符串的shellcode的话,优先是要避开0x00,不然会被当成\0而中断字符串,如果实在无法避免可以对shellcode进行编码,常用算法是xor一下,这样0x00就不是0了,真正的shellcode执行前再xor一下解码。
jmp到“某个地址”,这个“某个地址”是固定的还是根据输入定的?
【 在 renyi 的大作中提到: 】
: 敢觉很坑,绕过的方法不是没用过。就是发现那个地方的代码除了jmp到某个地址外,其他的都会被跳板返回的那部分合并为一个代码。至今还没绕过,哎~~~不知怎解
要求是能调用某个函数,jmp到这个函数入口地址OK。不过这样会报出内存错(不能正确结束)。我是想用CALL一下,再调用exit结束它。“某个地址”指这个函数地址。换个NEAR的地址机器码汇编后都会被前面的包含。。。太奇葩了,请问大神,有没有可以不被前面机器码“吞掉”的机器码,NOP,INC+DEC之类的都试过,全被“吞”了
【 在 smilefufu 的大作中提到: 】
: jmp到“某个地址”,这个“某个地址”是固定的还是根据输入定的?
或者可以换一个思路,内存报错的原因是因为栈不平衡,你需要构造一个让你call完退出不会报错的栈,然后再call
【 在 renyi 的大作中提到: 】
: 要求是能调用某个函数,jmp到这个函数入口地址OK。不过这样会报出内存错(不能正确结束)。我是想用CALL一下,再调用exit结束它。“某个地址”指这个函数地址。换个NEAR的地址机器码汇编后都会被前面的包含。。。太奇葩了,请问大神,有没有可以不被前面机器码“吞掉”的机器码,NOP,INC+DEC之类的都试过,全被“吞”了