Недооцененная CSRF уязвимость! - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Thu, 28 Mar 2024 21:50:10 +0300на сайте все нормально, csrf защита давно присутствует в движке, просто была выключена
https://visavi.net/topics/41653/674476
Недооцененная CSRF уязвимость! Вантуз-менSun, 07 Dec 2014 01:43:04 +0300Сообщенияhttps://visavi.net/topics/41653/67447622. <strong>G_A_N_J_A_R</strong>, да да, не успел дописать - ты уже ответил <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> <br>
21. <strong>ramzes</strong>, маньяк )
https://visavi.net/topics/41653/674319
Недооцененная CSRF уязвимость! ВладWed, 03 Dec 2014 14:21:15 +0300Сообщенияhttps://visavi.net/topics/41653/67431920. Только писать его еще в сессию надо, что бы проверить при получении запроса. И, если в запросе есть токен - не генерить заново.
https://visavi.net/topics/41653/674318
Недооцененная CSRF уязвимость! БогданWed, 03 Dec 2014 14:19:29 +0300Сообщенияhttps://visavi.net/topics/41653/674318давно когда то делал себе.<br>
так вот<br>
<pre class="prettyprint"><?php
function token($type=true){
$arr = array('a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','p','r','s',
't','u','v','x','y','z',
'A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','P','R','S',
'T','U','V','X','Y','Z',
'1','2','3','4','5','6',
'7','8','9','0','.',',',
'(',')','[',']','!','?',
'&','^','%','@','*','$',
'<','>','/','|','+','-',
'{','}','`','~');
if($type==true){
$pass = "";
for($i = 0; $i < 12; $i++){
$index = rand(0, count($arr) - 1);
$pass .= $arr[$index];
}
$_SESSION['token'] = $pass;
return $pass;
}else{
if(isset($_SESSION['token'])){
return $_SESSION['token'];
}else{
return false;
}
}
}
function token_input(){
return '<input type="hidden" name="token" value="'.token(true).'" />';
}
function token_check(){
if(token(false)!=false AND $_POST['token']==token(false)){
unset($_SESSION['token']);
return true;
}else{
unset($_SESSION['token']);
return false;
}
}
</pre>
https://visavi.net/topics/41653/674317
Недооцененная CSRF уязвимость! ramzesWed, 03 Dec 2014 14:19:02 +0300Сообщенияhttps://visavi.net/topics/41653/674317ну примерный алогритм токена - что то в таком роде, полагаю:<br>
<pre class="prettyprint"><?
$soil = '3#0sd7*+12G';
$token = md5(session_id().uniqid().$soil);
?></pre>
и просрочен он будет при каждом обновлении страницы с токеном, за счет изменения uniqid()<br>
записываем его в сессию ($_SESSION['token']), в hidden форму, после отправки формы, проверяем соответствие сессии и формы, удаляем сессию
https://visavi.net/topics/41653/674315
Недооцененная CSRF уязвимость! ВладWed, 03 Dec 2014 14:14:26 +0300Сообщенияhttps://visavi.net/topics/41653/67431517. <strong>vlad6085</strong>, Просто нужен не постоянный токин а сессионный, когда злоумышленник его получит он уже будет просрочен.
https://visavi.net/topics/41653/674313
Недооцененная CSRF уязвимость! fhgdfhdfhdfWed, 03 Dec 2014 14:04:32 +0300Сообщенияhttps://visavi.net/topics/41653/67431317. <strong>vlad6085</strong>, для каждой генерации страницы с формой создается свой токен.<br>
даже если ты узнаешь токен из этой формы, он будет актуален только для твоей сессии с которой ты зашел на страницу с формой, у жертвы же сессия своя, и токена в ней не будет (или будет другой, если ты подсунешь ему незаметно страницу с этой формой)
https://visavi.net/topics/41653/674312
Недооцененная CSRF уязвимость! ramzesWed, 03 Dec 2014 14:00:49 +0300Сообщенияhttps://visavi.net/topics/41653/674312Тогда возникает еще один момент: если злоумышленник узнает этот токен у конкретного пользователя, то его(пользователя) уже ничто не спасет, если он перешел по вредоносной ссылке. Вероятность конечно ничтожно мала, но тем не менее учитывать ее стоит. И как с ней бороться разработчикам - даже представить не могу.<br>
<br>
А на стороне сервера нельзя разве каким либо образом заблокировать запросы с посторонних сайтов?
https://visavi.net/topics/41653/674309
Недооцененная CSRF уязвимость! ВладWed, 03 Dec 2014 13:19:48 +0300Сообщенияhttps://visavi.net/topics/41653/674309если кто то по глупости откроет сайт для кроссдоменного аякса, то и токены не спасут<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile">
https://visavi.net/topics/41653/674308
Недооцененная CSRF уязвимость! ramzesWed, 03 Dec 2014 13:16:54 +0300Сообщенияhttps://visavi.net/topics/41653/67430814. <strong>G_A_N_J_A_R</strong>, понял, спасибо за информацию, раньше даже не думал об этом <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile">
https://visavi.net/topics/41653/674306
Недооцененная CSRF уязвимость! ВладWed, 03 Dec 2014 13:11:00 +0300Сообщенияhttps://visavi.net/topics/41653/674306<blockquote class="blockquote">То, что кука априори хранится на стороне клиента, по всей своей логике, спасти ситуацию не может, т.к. вредоносу по барабану как эта авторизация у меня хранится, главное чтобы сам сайт меня опознал.<br>
Это так?</blockquote>
верно<br>
<blockquote class="blockquote">То есть, единственное решение - гонять юзера по сайту с дополнительным $_GET['token']?</blockquote>
по всему не надо. Подставлять и проверять нужно только там, где действия пользователя нужно проверять. На том же ВК хеша нет на всех страницах. В формах достаточно подставить hidden поле с хэшем.
https://visavi.net/topics/41653/674304
Недооцененная CSRF уязвимость! БогданWed, 03 Dec 2014 13:02:09 +0300Сообщенияhttps://visavi.net/topics/41653/674304Эмм, немного недопонимаю, буду благодарен если кто-нибудь разъяснит.<br>
Хэш авторизации, который хранится в куке, можно считать токеном?<br>
Я при авторизации юзера выдаю ему засоленный хэш из его логина+id, записываю в куку.<br>
То, что кука априори хранится на стороне клиента, по всей своей логике, спасти ситуацию не может, т.к. вредоносу по барабану как эта авторизация у меня хранится, главное чтобы сам сайт меня опознал.<br>
Это так?<br>
То есть, единственное решение - гонять юзера по сайту с дополнительным $_GET['token']?<br>
Что то в роде "http://site.com/section/21/tokenvalue" ?
https://visavi.net/topics/41653/674302
Недооцененная CSRF уязвимость! ВладWed, 03 Dec 2014 12:56:06 +0300Сообщенияhttps://visavi.net/topics/41653/674302Хотя... от такого вида атак X-Frame-Options: DENY всё же защитит.
https://visavi.net/topics/41653/674297
Недооцененная CSRF уязвимость! SL@YERWed, 03 Dec 2014 11:22:16 +0300Сообщенияhttps://visavi.net/topics/41653/6742977. <strong>karpov-ml</strong>, Нет, не поможет. Здесь visavi не через iframe подгружает. Нужен hash при отправке важных запросов.<br>
Ganjar - однозначно молодец)
https://visavi.net/topics/41653/674294
Недооцененная CSRF уязвимость! SL@YERWed, 03 Dec 2014 09:49:53 +0300Сообщенияhttps://visavi.net/topics/41653/6742949. <strong>Jahak</strong>, спасибо за статью, уже читал когда то, но было полездно прочитать её еще раз. =)
https://visavi.net/topics/41653/674293
Недооцененная CSRF уязвимость! fhgdfhdfhdfWed, 03 Dec 2014 09:34:03 +0300Сообщенияhttps://visavi.net/topics/41653/674293