2017-01-24 2 views
0

Хорошо, что я действительно работаю в качестве пентэстера для компании, я обнаружил, что на сайте есть ошибка, из которой они генерируют токены csrf из-за получения запроса на эту страницу localhost/csrf-token и выдают csrf tokens в незашифрованном тексте Чтобы получить нужный токен csrf, куки-файлы пользователя должны быть отправлены с запросом Я попытался использовать curl в моей POC, чтобы получить результат запроса, который является токеном , но файлы cookie не были отправлено с запросом Я выяснил, что единственный способ, которым может быть отправлен запрос, - это использовать обычную форму, но я не могу получить его результат. . Корректирующий кодКак отправить форму и получить данные

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://localhost/csrf-token"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 


curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Requested-With: XMLHttpRequest' 
)); 
$output = curl_exec ($ch); 
curl_close ($ch); 
echo $output; 

запрос Нормальный прибудете, что я хочу использовать это

<form action="localhost/csrf-token" method="get"> 
<input type="submit" name="submit" value="send"> 
</form> 

мой вопрос здесь в том, как получить результат второго фрагмента кода

+0

Прежде всего: ваш текст очень трудно прочитать. Пожалуйста, используйте некоторые знаки пунктуации, это значительно увеличивает шанс, что люди готовы помочь вам. Что касается вашего вопроса: скопируйте заголовок своего вопроса в поле поиска Google и найдите ответ. Если это не поможет, сообщите нам, в чем проблема. – Burki

+0

Я использовал новые строки, но сайт удалил их. Кроме того, конечно, я искал google и не нашел ничего полезного –

ответ

0
curl_setopt($ch, CURLOPT_POSTFIELDS, 'parametsr'); 

использовать это, чтобы добавить параметры.

Как ваша форма может отправлять только один параметр.

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://localhost/csrf-token"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

curl_setopt($ch, CURLOPT_POSTFIELDS, 'submit=send'); 

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Requested-With: XMLHttpRequest' 
)); 
$output = curl_exec ($ch); 
curl_close ($ch); 
echo $output; 

будет запрос с формой. Или просто изменить URL, как ваш запрос GET

https://localhost/csrf-token?submit=send 

Однако, я думаю, что запрос будет требовать куков для создания маркеров.

+0

Мне по-прежнему нужно отправлять файлы cookie от пользователя как тип атаки csrf, поэтому мне понадобится второй фрагмент кода, который находится в html, но мне также нужен ответ form parmeter не важен –

+0

Да, это то, что я говорю. .. curl работает на сервере, а не файлы cookie, добавленные к запросу. Следовательно, он не будет генерировать токен для вас. URL-адрес будет возвращать токен только в том случае, если запрос сделан из браузера, включенного в cookie, или файлы cookie добавляются вручную к запросу. –