[Secure Uploader] v2 By MichBukana
Hola foro les traigo la segunda version de un uploader php el añadido principal es que detecta posibles inyecciones XSS en el archivo a subir

añadan a los 2 arrays $xss1 y $xss2 indistintamentes si quieren mas expresiones relacionadas con XSS

Caracteristicas:
+ no se podrá sobreescribir un mismo archivo ( evita duplicación )
+ tamaño máximo de archivos a subir de 100kb
+ no sirve de nada el http live headers ' no lo pasa '
+ lleva un Filtro muy bueno
- permitios: serán el tipo de archivo que se podrá subir, ahora mismo solo se permite la subida a archivos:
jpg, png, gif, jpeg, txt, doc, docx
- denegados: serán los tipos de archivos que no se permiten subir:
php, php3, php4, phtml, exe, asp
* los tipicos de una Shell, o de un troyano/virus/stealer/keylogger. aviso: estos ultimos no han de ser solo exe como sabeís, ya es cosa vuestra agregarles más tipos al apartado denegados

Hola foro les traigo la segunda version de un uploader php el añadido principal es que detecta posibles inyecciones XSS en el archivo a subir

añadan a los 2 arrays $xss1 y $xss2 indistintamentes si quieren mas expresiones relacionadas con XSS

Caracteristicas:
+ no se podrá sobreescribir un mismo archivo ( evita duplicación )
+ tamaño máximo de archivos a subir de 100kb
+ no sirve de nada el http live headers ' no lo pasa '
+ lleva un Filtro muy bueno
- permitios: serán el tipo de archivo que se podrá subir, ahora mismo solo se permite la subida a archivos:
jpg, png, gif, jpeg, txt, doc, docx
- denegados: serán los tipos de archivos que no se permiten subir:
php, php3, php4, phtml, exe, asp
* los tipicos de una Shell, o de un troyano/virus/stealer/keylogger. aviso: estos ultimos no han de ser solo exe como sabeís, ya es cosa vuestra agregarles más tipos al apartado denegados

Código: Seleccionar todo
<center><form action="" method="post" enctype="multipart/form-data">
<br />
<img src='http://img204.imageshack.us/img204/3545/sitelogow.png' border='0'/>
<br /><br /><br /><br />
<b>[Secure Uploader] v2 by MichBukana</b>
<br /><br />
<input name="userfile" type="file">
<input type="hidden" name="cadenatexto" value="1">
<input type="submit" value="Enviar">
<br />
</form>
<?php
error_reporting (E_ALL ^ E_NOTICE);if ($_POST['cadenatexto']!="")
{
$permitidos = array('jpg', 'png', 'gif', 'jpeg', 'txt', 'bmp');
$denegados = array('php', 'php3', 'php4', 'phtml','exe', 'scr', 'pdf', 'com', 'asp', 'cfm');
$archivo = $_FILES['userfile']['name'];$tio = $_FILES['userfile']['tmp_name'];$prefijo = substr(md5(uniqid(rand())),0,6);$destino = "./subidos/".$prefijo."_".$archivo;$tamano_archivo = $_FILES['userfile']['size'];
$val=file_get_contents($tio);
if(!file_get_contents($tio))
{
echo "fallo<br>";
exit(0);
}
$xss1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
$xss2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
$ra = array_merge($xss1, $xss2);
$num = count($ra);
echo "<b>Cantidad de expresiones XSS actual: </b>".$num."<br>";
if(!(($tamano_archivo < 100000) && (in_array(end(explode('.', $archivo)), $permitidos))))
{
echo '<MARQUEE bgcolor = "#FFFFFF" width = 25% scrolldelay = 0 >no puedes subir este tipo de archivos O con un tamaño superior a 100kb</MARQUEE><br> ';
echo $val."<br>";
exit(0);
}
if(!(($tamano_archivo > 100000) && (in_array(end(explode('.', $archivo)), $denegados)))){
echo "<b>Cantidad de deteccion XSS: </b>";
for ($i = 1; $i <= $num; $i++)
{
$lol = @substr_count($val, $ra[$i]);
echo $lol;
if ($lol > 0)
{
print_r(@substr_count($val, $ra)>0);
echo '<br><MARQUEE bgcolor = "#FFFFFF" width = 25% scrolldelay = 0 >la imagen contiene una Inyeccion XSS porfavor remuevala</MARQUEE><br> ';
echo "<b>Contenido: </b>".$val."<br>";
exit(0);
}
}
if (copy($_FILES['userfile']['tmp_name'],$destino))
{
echo "<br>";
echo "<br>";
echo "<br>";
echo '<MARQUEE bgcolor = "#FFFFFF" width = 25% scrolldelay = 0 > Archivo subido con existo.</MARQUEE><br> ';
echo $val."<br>";
exit(0);
}
}
};
?>
<br /><br /><br /><br /><br /><br /><br /></center>