Недооцененная CSRF уязвимость! - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Mon, 06 May 2024 17:02:26 +0300 на сайте все нормально, csrf защита давно присутствует в движке, просто была выключена https://visavi.net/topics/41653/674476 Недооцененная CSRF уязвимость! Вантуз-мен Sun, 07 Dec 2014 01:43:04 +0300 Сообщения https://visavi.net/topics/41653/674476 22. <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/674319 20. Только писать его еще в сессию надо, что бы проверить при получении запроса. И, если в запросе есть токен - не генерить заново. 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">&lt;?php function token($type=true){ $arr = array(&#039;a&#039;,&#039;b&#039;,&#039;c&#039;,&#039;d&#039;,&#039;e&#039;,&#039;f&#039;, &#039;g&#039;,&#039;h&#039;,&#039;i&#039;,&#039;j&#039;,&#039;k&#039;,&#039;l&#039;, &#039;m&#039;,&#039;n&#039;,&#039;o&#039;,&#039;p&#039;,&#039;r&#039;,&#039;s&#039;, &#039;t&#039;,&#039;u&#039;,&#039;v&#039;,&#039;x&#039;,&#039;y&#039;,&#039;z&#039;, &#039;A&#039;,&#039;B&#039;,&#039;C&#039;,&#039;D&#039;,&#039;E&#039;,&#039;F&#039;, &#039;G&#039;,&#039;H&#039;,&#039;I&#039;,&#039;J&#039;,&#039;K&#039;,&#039;L&#039;, &#039;M&#039;,&#039;N&#039;,&#039;O&#039;,&#039;P&#039;,&#039;R&#039;,&#039;S&#039;, &#039;T&#039;,&#039;U&#039;,&#039;V&#039;,&#039;X&#039;,&#039;Y&#039;,&#039;Z&#039;, &#039;1&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039;,&#039;5&#039;,&#039;6&#039;, &#039;7&#039;,&#039;8&#039;,&#039;9&#039;,&#039;0&#039;,&#039;.&#039;,&#039;,&#039;, &#039;(&#039;,&#039;)&#039;,&#039;&#91;&#039;,&#039;]&#039;,&#039;!&#039;,&#039;?&#039;, &#039;&amp;&#039;,&#039;^&#039;,&#039;%&#039;,&#039;&#64;&#039;,&#039;*&#039;,&#039;$&#039;, &#039;&lt;&#039;,&#039;&gt;&#039;,&#039;/&#039;,&#039;|&#039;,&#039;+&#039;,&#039;-&#039;, &#039;{&#039;,&#039;}&#039;,&#039;`&#039;,&#039;~&#039;); if($type==true){ $pass = &quot;&quot;; for($i = 0; $i &lt; 12; $i++){ $index = rand(0, count($arr) - 1); $pass .= $arr&#91;$index]; } $_SESSION&#91;&#039;token&#039;] = $pass; return $pass; }else{ if(isset($_SESSION&#91;&#039;token&#039;])){ return $_SESSION&#91;&#039;token&#039;]; }else{ return false; } } } function token_input(){ return &#039;&lt;input type=&quot;hidden&quot; name=&quot;token&quot; value=&quot;&#039;.token(true).&#039;&quot; /&gt;&#039;; } function token_check(){ if(token(false)!=false AND $_POST&#91;&#039;token&#039;]==token(false)){ unset($_SESSION&#91;&#039;token&#039;]); return true; }else{ unset($_SESSION&#91;&#039;token&#039;]); return false; } } </pre> https://visavi.net/topics/41653/674317 Недооцененная CSRF уязвимость! ramzes Wed, 03 Dec 2014 14:19:02 +0300 Сообщения https://visavi.net/topics/41653/674317 ну примерный алогритм токена - что то в таком роде, полагаю:<br> <pre class="prettyprint">&lt;? $soil = &#039;3#0sd7*+12G&#039;; $token = md5(session_id().uniqid().$soil); ?&gt;</pre> и просрочен он будет при каждом обновлении страницы с токеном, за счет изменения uniqid()<br> записываем его в сессию ($_SESSION[&#039;token&#039;]), в hidden форму, после отправки формы, проверяем соответствие сессии и формы, удаляем сессию https://visavi.net/topics/41653/674315 Недооцененная CSRF уязвимость! Влад Wed, 03 Dec 2014 14:14:26 +0300 Сообщения https://visavi.net/topics/41653/674315 17. <strong>vlad6085</strong>, Просто нужен не постоянный токин а сессионный, когда злоумышленник его получит он уже будет просрочен. https://visavi.net/topics/41653/674313 Недооцененная CSRF уязвимость! fhgdfhdfhdf Wed, 03 Dec 2014 14:04:32 +0300 Сообщения https://visavi.net/topics/41653/674313 17. <strong>vlad6085</strong>, для каждой генерации страницы с формой создается свой токен.<br> даже если ты узнаешь токен из этой формы, он будет актуален только для твоей сессии с которой ты зашел на страницу с формой, у жертвы же сессия своя, и токена в ней не будет (или будет другой, если ты подсунешь ему незаметно страницу с этой формой) https://visavi.net/topics/41653/674312 Недооцененная CSRF уязвимость! ramzes Wed, 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 уязвимость! ramzes Wed, 03 Dec 2014 13:16:54 +0300 Сообщения https://visavi.net/topics/41653/674308 14. <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[&#039;token&#039;]?</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[&#039;token&#039;]?<br> Что то в роде &quot;http://site.com/section/21/tokenvalue&quot; ? 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@YER Wed, 03 Dec 2014 11:22:16 +0300 Сообщения https://visavi.net/topics/41653/674297 7. <strong>karpov-ml</strong>, Нет, не поможет. Здесь visavi не через iframe подгружает. Нужен hash при отправке важных запросов.<br> Ganjar - однозначно молодец) https://visavi.net/topics/41653/674294 Недооцененная CSRF уязвимость! SL@YER Wed, 03 Dec 2014 09:49:53 +0300 Сообщения https://visavi.net/topics/41653/674294 9. <strong>Jahak</strong>, спасибо за статью, уже читал когда то, но было полездно прочитать её еще раз. =) https://visavi.net/topics/41653/674293 Недооцененная CSRF уязвимость! fhgdfhdfhdf Wed, 03 Dec 2014 09:34:03 +0300 Сообщения https://visavi.net/topics/41653/674293