美文网首页
2017-12-28

2017-12-28

作者: y0ungta1a | 来源:发表于2017-12-28 21:21 被阅读0次

    # Scapy Fuzz 模块解析

    很久以来,scapy都是一个交互式发包的神器,因为定制所以强大,借助scapy可以方便实现很多功能,但是对于其很多功能,并没有人给予很多深入的解释,因此在此苟且用自己粗糙的语言尝试解析一遍scapy源码。

    # Fuzz模块

    scapy在用户手册中,提到一个用户模块,就是fuzz功能

    ```

    >>>send(IP(dst="target")/fuzz(UDP()/NTP(version=4)),loop=1

    ................

    Sent 16 packets.

    ```

    然后我们来解析下发送的数据包

    ![](http://)

    # 源码解读 Fuzz模块

    ## field 字段对fuzz的配置

    ```

    I:\code\scapy\scapy\fields.py:

    1081 

    1082  class ByteEnumKeysField(ByteEnumField):

    1083:    """ByteEnumField that picks valid values when fuzzed. """

    1084      def randval(self):

    1085          return RandEnumKeys(self.i2s)

    ....

    1087 

    1088  class ShortEnumKeysField(ShortEnumField):

    1089:    """ShortEnumField that picks valid values when fuzzed. """

    1090      def randval(self):

    1091          return RandEnumKeys(self.i2s)

    ....

    1093 

    1094  class IntEnumKeysField(IntEnumField):

    1095:    """IntEnumField that picks valid values when fuzzed. """

    1096      def randval(self):

    1097          return RandEnumKeys(self.i2s)

    ```

    可以看到每个域,都对fuzz中字段变化方式做了一定探索

    ## field 配置按钮

    相关文章

      网友评论

          本文标题:2017-12-28

          本文链接:https://www.haomeiwen.com/subject/tacbgxtx.html