文件上传upload-labs第五至十关

第五关 黑名单绕过

1.还是黑名单,且加上了.htaccess,但是没有将后缀进行大小写统一,于是大小写绕过
比如上传.Php后缀文件

00x06 黑名单,空绕过

1.还是黑名单,但是没有对后缀名进行去空处理,可在后缀名中加空绕过

00x07 黑名单,点绕过

1.还是黑名单,但是没有对后缀名进行去“.”处理,因此可在后缀名中加“.”绕过(php代码中少了 f i l e n a m e = d e l d o t ( file_name = deldot( filename=deldot(file_name);/删除文件名末尾的点)利用windows特性,会自动去掉最后的”.”

00x08 黑名单,::$DATA绕过

1.还是黑名单,但是少了这一行代码 f i l e e x t = s t r i r e p l a c e ( ′ : : file_ext = str_ireplace(':: fileext=strireplace(::DATA’, ‘’, f i l e e x t ) ; / / 去 除 字 符 串 : : file_ext);//去除字符串:: fileext);//::DATA

因此可以在后缀名加”::$DATA”绕过(利用windows特性)

00x09 黑名单,配合解析漏洞

  1. 这一关像是前几关的组合拳,虽然把最后的点给删掉,但是仍然可以绕过,因为这里的过滤并没有递归下去,只是一步,这样就相当于SQL注入里面用str_replace只过滤一次关键字一样

  2. 可以遵循着他的步骤去实现自己的payload,可以这样设置(点+空格+点),经过处理后,文件名变成info.php.,即可绕过。

00x10 黑名单,双后缀名绕过

  1. 依旧是黑名单过滤,注意到,这里是将问题后缀名替换为空,于是可以利用双写绕过: f i l e n a m e = t r i m ( file_name = trim( filename=trim(_FILES[‘upload_file’][‘name’]);

    f i l e n a m e = s t r i r e p l a c e ( file_name = str_ireplace( filename=strireplace(deny_ext,"", $file_name);

你可能感兴趣的:(文件上传upload-labs第五至十关)