Parser

Here is the parser interface definition in order to implement a new parser.

class burpui.misc.parser.interface.BUIparser[source]

burpui.misc.parser.interface.BUIparser defines a generic interface for burp configuration files parser.

abstract cancel_backup(name=None)[source]

burpui.misc.parser.interface.BUIparser.cancel_backup() called by burpui.misc.backend.interface.BUIbackend.cancel_server_backup() in order to cancel a server-initiated backup.

Parameters:

name (str) – Client name

Returns:

A list of notifications to return to the UI (success or failure)

abstract cancel_restore(name=None)[source]

burpui.misc.parser.interface.BUIparser.cancel_restore() called by burpui.misc.backend.interface.BUIbackend.cancel_server_restore() in order to cancel a server-initiated restoration.

Parameters:

name (str) – Client name

Returns:

A list of notifications to return to the UI (success or failure)

abstract is_client_revoked(client=None)[source]

burpui.misc.parser.interface.BUIparser.is_client_revoked() is used to check if a given client has it’s certificate revoked or not.

Parameters:

client (str) – The name of the client to check

Returns:

True or False

abstract list_clients()[source]

burpui.misc.parser.interface.BUIparser.list_clients() is used to retrieve a list of clients with their configuration file.

Returns:

A list of clients with their configuration file

abstract list_static_templates()[source]

burpui.misc.parser.interface.BUIparser.list_static_templates() is used to retrieve a list of static templates with their absolute paths.

Returns:

A list of templates

abstract list_templates()[source]

burpui.misc.parser.interface.BUIparser.list_templates() is used to retrieve a list of templates with their absolute paths.

Returns:

A list of templates

abstract param(name, obj='server_conf', client=None)[source]

burpui.misc.parser.interface.BUIparser.param() lookup for a given param in the conf.

Parameters:
  • name (str) – Param name

  • obj (str) – Object to look param for

  • client (str) – Search for a given client param

Returns:

The asked param

abstract path_expander(pattern=None, source=None, client=None)[source]

burpui.misc.parser.interface.BUIparser.path_expander() is used to expand path of file inclusions glob the user can set in the setting panel.

Parameters:
  • pattern (str) – The glob/path to expand

  • source (str) – What file we are working in

  • client (str) – The client name when working on client files

Returns:

A list of files or an empty list

abstract read_backup(name=None)[source]

burpui.misc.parser.interface.BUIparser.read_backup() called by burpui.misc.backend.interface.BUIbackend.is_server_backup() in order to test the existence of a server-initiated backup file.

Parameters:

name (str) – Client name

Returns:

A True if the file is found, else False.

abstract read_client_conf(client=None, conf=None, template=False, statictemplate=False)[source]

burpui.misc.parser.interface.BUIparser.read_client_conf() is called by burpui.misc.backend.interface.BUIbackend.read_conf_cli() in order to parse the burp-clients configuration files.

It works the same way as burpui.misc.parser.interface.BUIparser.read_server_conf()

abstract read_restore(name=None)[source]

burpui.misc.parser.interface.BUIparser.read_restore() called by burpui.misc.backend.interface.BUIbackend.is_server_restore() in order to read a server-initiated restoration file.

Parameters:

name (str) – Client name

Returns:

A dict describing the content of the file

abstract read_server_conf(conf=None)[source]

burpui.misc.parser.interface.BUIparser.read_server_conf() is called by burpui.misc.backend.interface.BUIbackend.read_conf_srv() in order to parse the burp-server configuration file.

Parameters:

conf (str) – Complementary configuration file (for instance, file inclusions)

Returns:

Dict of options

Example:

{
    "boolean": [
        {
            "name": "hardlinked_archive",
            "value": false
        },
        {
            "name": "syslog",
            "value": true
        },
    ],
    "clients": [
        {
            "name": "client1",
            "value": "/etc/burp/clientconfdir/client1"
        },
        {
            "name": "client2",
            "value": "/etc/burp/clientconfdir/client2"
        },
    ],
    "common": [
        {
            "name": "mode",
            "value": "server"
        },
        {
            "name": "directory",
            "value": "/srv/burp"
        },
    ],
    "includes": [],
    "includes_ext": [],
    "integer": [
        {
            "name": "port",
            "value": 4971
        },
        {
            "name": "status_port",
            "value": 4972
        },
        {
            "name": "max_children",
            "value": 5
        },
        {
            "name": "max_status_children",
            "value": 5
        }
    ],
    "multi": [
        {
            "name": "keep",
            "value": [
                "7",
                "4",
                "4"
            ]
        },
        {
            "name": "timer_arg",
            "value": [
                "12h",
                "Mon,Tue,Thu,Fri,17,18,19,20,21,22,23",
                "Wed,Sat,Sun,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23"
            ]
        },
    ],
    "hierarchy": [
        {
            "children": [
                {
                    "children": [],
                    "dir": "/tmp/burp/conf.d",
                    "full": "/tmp/burp/conf.d/empty.conf",
                    "name": "empty.conf",
                    "parent": "/tmp/burp/burp-server.conf"
                },
                {
                    "children": [],
                    "dir": "/tmp/burp/conf.d",
                    "full": "/tmp/burp/conf.d/ipv4.conf",
                    "name": "ipv4.conf",
                    "parent": "/tmp/burp/burp-server.conf"
                }
            ],
            "dir": "/tmp/burp",
            "full": "/tmp/burp/burp-server.conf",
            "name": "burp-server.conf",
            "parent": null
        }
    ]
}
abstract remove_client(client=None, keepconf=False, delcert=False, revoke=False, template=False, statictemplate=False, delete=False)[source]

burpui.misc.parser.interface.BUIparser.remove_client() is used to delete a client from burp’s configuration.

Parameters:
  • client (str) – The name of the client to remove

  • keepconf – Whether to keep the conf (in order to just revoke/delete the cert)

  • keepconf – bool

  • delcert (bool) – Whether to delete the associated certificate

  • revoke (bool) – Whether to revoke the associated certificate

  • template (bool) – Whether we remove a template

  • statictemplate (bool) – Whether we remove a static template

  • delete (bool) – Whether to remove data as well

Returns:

A list of notifications to return to the UI (success or failure)

Return type:

list

abstract remove_conf(path=None)[source]

burpui.misc.parser.interface.BUIparser.remove_conf() is used to remove a configuration file. It only works for “included” files within the server configuration file.

Parameters:

path (str) – The path of the file to remove

abstract rename_client(client=None, newname=None, template=False, statictemplate=False, keepcert=False, keepdata=False)[source]

burpui.misc.parser.interface.BUIParser.rename_client() is used to rename a client.

Parameters:
  • client (str) – The name of the client to rename

  • newname (str) – The new name of the client

  • template (bool) – Whether we remove a template

  • statictemplate (bool) – Whether we remove a static template

  • keepcert (bool) – Whether to keep using the same certificate or not

  • keepdata (bool) – Whether to keep the already saved data or not

Returns:

A list of notifications to return to the UI (success or failure)

Return type:

list

abstract server_initiated_backup(name=None)[source]

burpui.misc.parser.interface.BUIparser.server_initiated_backup() called by burpui.misc.backend.interface.BUIbackend.server_backup() in order to create a server-initiated backup file.

Parameters:

name (str) – Client name

Returns:

A list of notifications to return to the UI (success or failure)

abstract server_initiated_restoration(name=None, backup=None, files=None, strip=None, force=None, prefix=None, restoreto=None)[source]

burpui.misc.parser.interface.BUIparser.server_initiated_restoration() called by burpui.misc.backend.interface.BUIbackend.server_restore() in order to create server-initiated restoration file.

Parameters:
  • name (str) – Client name

  • backup (int) – Backup number

  • files (str) – List of files to restore

  • strip (int) – Number of leading path to strip

  • force (bool) – Whether to force overriding files or not

  • prefix (str) – Where to restore files

  • agent (str) – What server to ask (only in multi-agent mode)

Returns:

A list of notifications to return to the UI (success or failure)

abstract store_client_conf(data, client=None, conf=None, template=False, statictemplate=False, content='')[source]

burpui.misc.parser.interface.BUIparser.store_client_conf() is used by burpui.misc.backend.BUIbackend.store_conf_cli().

It works the same way as burpui.misc.parser.interface.BUIparser.store_conf() with an extra parameter:

Parameters:
  • client (str) – Name of the client for which to apply this config

  • conf (str) – The explicit filename of the conf

  • template (bool) – Is this file a template

  • statictemplate (bool) – Whether we remove a static template

  • content (str) – What default content to put in the file

abstract store_conf(data, conf=None, client=None, mode='srv', insecure=False, template=False, statictemplate=False, content='')[source]

burpui.misc.parser.interface.BUIparser.store_conf() is used to store the configuration from the web-ui into the actual configuration files. It is used by burpui.misc.backend.BUIbackend.store_conf_srv().

Parameters:
  • data (dict) – Data sent by the web-form

  • conf (str) – Force the file path (for file inclusions for instance)

  • client (str) – Client name

  • mode (str) – We actually use the same method for clients and server files

  • insecure (bool) – Used for the CLI

  • template (bool) – Is it a template

  • statictemplate (bool) – Whether we remove a static template

  • content (str) – What default content to put in the file

Returns:

A list of notifications to return to the UI (success or failure)

Example:

[[0, "Success"]]