Poro: Lab7

Es un poco inesperado que
la pista obtenida por el laboratorio tenga solo tres palabras:
encontrar una manera
(solo probamos la existencia aquí, y dejamos el resto como ejercicios para el lector)

En resumen, esta investigación de lab7:
aprende a usar Burp Suite (Proxy / Repeater / Intercept) para
repasar el conocimiento de lab6 (???)
y adivinar la intención del profesor asistente a través de números misteriosos


Tarea 1

Necesito que encuentres una manera de iniciar sesión.
¿Cómo lo dices? De todos modos, si inicias sesión, obtendrás un número misterioso:
Inserte la descripción de la imagen aquí
Wow, realmente lo pensé durante mucho tiempo,
y luego lo invertí, y descubrí que el mensaje enviado desde el servidor se descifraría en el APK y se
escribiría un pequeño Haga clic en (llamar al método de decodificación del APK original):
Inserte la descripción de la imagen aquí
obtenga la pista de inicio de sesión, algo

Después de iniciar sesión correctamente, ingresará a una página de invitado y obtendrá la despiadada burla de 233 del asistente de enseñanza.
En este momento, debe iniciar sesión
por el administrador. Primero use el mismo método que antes para descifrar la fuente de 233:
Inserte la descripción de la imagen aquí
Mire el código fuente, lo que tenemos que hacer es la respuesta HTTP Cambie is_admin a 1 y
observe el método de encriptación y desencriptación. Es una encriptación simétrica, puede usar directamente la codificación proporcionada para encriptar (algunos símbolos deben modificarse manualmente) y luego usar la intercepción de burp para interceptar la respuesta, y luego enviarla de vuelta después de la modificación
. Formato, después de cambiar para usar cifrado pequeño:

new-instance v0, Lorg/json/JSONObject;
invoke-direct {
    
    v0}, Lorg/json/JSONObject;-><init>()V
const-string v1, "username"
const-string v2, "admin"
invoke-virtual {
    
    v0, v1, v2}, 
Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;

const-string v1, "id"
const-wide v2, XXXX
invoke-virtual {
    
    v0, v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;

const-string v1, "is_admin"
const/16 v2, 1
invoke-virtual {
    
    v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;

const-string v1, "result"
const/16 v2, 1
invoke-virtual {
    
    v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;

invoke-virtual {
    
    v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, key//源码里有secret key
invoke-static {
    
    v0, v1}, Lcom/pore/sniffing/utils/AesUtil;->encrypt(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1

Intercept intercepta la respuesta y la modifica para iniciar sesión:
Inserte la descripción de la imagen aquí

Es realmente maravilloso.
No puedes obtener el secreto
cuando presionas el botón pequeño ligeramente. En el momento en que presionas el botón, el is_real_admin enviado es 0,
por lo que no puedes obtener la respuesta del secreto.
Inserte la descripción de la imagen aquí
En realidad, la idea es la misma. Cambia el pequeño de acuerdo con este formato. , Cambie is_real_admin a 1
y luego cifre por pequeño, obtenga la solicitud para presionar el botón y cámbielo (manualmente)

Este es un repetidor, por supuesto que es posible interceptar directamente
Inserte la descripción de la imagen aquí

Luego obtenga la respuesta con secreto:
Inserte la descripción de la imagen aquí
páselo de vuelta para obtener el secreto ~


¿Crees que esto está hecho?

Tarea 2

Escriba un complemento de Burp para implementar automáticamente los pasos anteriores

Muchas gracias aquí:
https://www.freebuf.com/articles/terminal/106673.html
No sé lo que estoy haciendo sin consultar el marco.

El primer paso es abrir el extensor y descargar el paquete (guardar los archivos de la interfaz)
Inserte la descripción de la imagen aquí

Después de obtener las bolsas, Java puede estar contento con la interfaz para lograr un
seleccionado aquí, realizar IBurpExtender, IHttpListener dos interfaces en él
es necesario, para lograr una de nuestras funciones

public class BurpExtender  implements IBurpExtender, IHttpListener {
    
    

    private IExtensionHelpers helpers;

    @Override
    public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) {
    
    
        helpers = callbacks.getHelpers();
        callbacks.registerHttpListener(this);

    }

La primera función es modificar la respuesta recibida al iniciar sesión , de modo que el mensaje recibido por la APK sea que el administrador inició sesión correctamente.
Muy violento, solo reemplácelo directamente.

@Override
    public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo) {
    
    
        if (!messageIsRequest) {
    
    
            IResponseInfo analyzedResponse = helpers.analyzeResponse(messageInfo.getResponse());
            List<String> header = analyzedResponse.getHeaders();
            short statusCode = analyzedResponse.getStatusCode();
            int bodyOffset = analyzedResponse.getBodyOffset();
            if (statusCode == 200) {
    
    
                try {
    
    
                    String response = new String(messageInfo.getResponse());
                    String body = response.substring(bodyOffset);
                    body = body.replace("原来收到的报文", "替换并加密后的报文");
                    byte[] bodybyte = body.getBytes();
                    messageInfo.setResponse(helpers.buildHttpMessage(header, bodybyte));
                } catch (Exception e) {
    
    
                    e.printStackTrace();
                }

            }

Oh, es una trampa, aunque es un cifrado simétrico, pero se han cambiado algunos símbolos, debes restaurarlo tú mismo

La segunda función es que después de presionar el botón de administración, automáticamente brindará lo
mismo que su secreto , solo cambie la solicitud , la lógica es la misma que la anterior ~

Finalmente IDEA exportó el paquete JAR
https://www.cnblogs.com/ffaiss/p/10908483.html
la primera exportación dijo que la versión de Java es demasiado alta, debe cambiarse manualmente, de lo contrario no se puede ejecutar ... (Debería ser mi crack de Burp La versión es un poco baja)

Agréguelo al extensor de Burp, simplemente ejecútelo
. Es demasiado difícil de depurar ... Afortunadamente, no hay problema.


Laboratorio telepático
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Rachel_IS/article/details/105767245
Recomendado
Clasificación