Mehr Hacking mit Python by Justin Seitz

Mehr Hacking mit Python by Justin Seitz

Autor:Justin Seitz
Die sprache: deu
Format: epub
Herausgeber: dpunkt.verlag GmbH
veröffentlicht: 2015-07-11T16:00:00+00:00


/**

* This method is used by Burp to obtain the value of the next payload.

*

* @param baseValue The base value of the current payload position.

* This value may be null if the concept of a base value is not

* applicable (e.g. in a battering ram attack).

* @return The next payload to use in the attack.

*/

➋ byte[] getNextPayload(byte[] baseValue);

/**

* This method is used by Burp to reset the state of the payload

* generator so that the next call to

* getNextPayload() returns the first payload again. This

* method will be invoked when an attack uses the same payload

* generator for more than one payload position, for example in a

* sniper attack.

*/

➌ void reset();

}

O.K.! Wir müssen also die Basisklasse implementieren und diese muss drei Funktionen bereitstellen. Die erste Funktion, hasMorePayloads ➊, entscheidet einfach, ob weitere mutierte Requests an den Burp Intruder zurückgegeben werden sollen. Wir handhaben das mit einem einfachen Zähler. Hat dieser Zähler ein von uns festgesetztes Maximum erreicht, liefern wir False zurück, sodass keine weiteren Mutationen generiert werden. Die Funktion getNextPayload ➋ empfängt die Originalnutzdaten des durch Sie abgefangenen HTTP-Requests. Haben Sie mehrere Nutzdatenbereiche im HTTP-Request gewählt, erhalten Sie hingegen nur die Bytes, die Sie mutieren wollen (mehr dazu später). Diese Funktion erlaubt das Fuzzing der ursprünglichen Testdaten, die dann an Burp zurückgegeben werden, der diese neuen Werte anschließend sendet. Die letzte Funktion, reset ➌, erlaubt uns nach der Generierung einer bekannten Anzahl mutierter Requests – sagen wir fünf – für jede im Intruder-Tab festgelegte Nutzdatenposition eine Iteration über diese fünf mutierten Werte.

Unser Fuzzer ist gar nicht so »fussy« (dtsch.: »wählerisch«) und führt für jeden HTTP-Request nur ein zufälliges Fuzzing durch. Sehen wir uns nun an, wie das in Python implementiert wird. Fügen Sie den folgenden Code an das Ende von bhp_fuzzer.py an:

➊ class BHPFuzzer(IIntruderPayloadGenerator):

def __init__(self, extender, attack):

self._extender = extender

self._helpers = extender._helpers

self._attack = attack

➋ self.max_payloads = 10

self.num_iterations = 0



Download



Haftungsausschluss:
Diese Site speichert keine Dateien auf ihrem Server. Wir indizieren und verlinken nur                                                  Inhalte von anderen Websites zur Verfügung gestellt. Wenden Sie sich an die Inhaltsanbieter, um etwaige urheberrechtlich geschützte Inhalte zu entfernen, und senden Sie uns eine E-Mail. Wir werden die entsprechenden Links oder Inhalte umgehend entfernen.