3、DVWA:FILE UPLOAD

3、FILE UPLOAD
(1)LOW3、DVWA:FILE UPLOAD_第1张图片1、这段代码的核心就是验证是否有接收文件**($_POST[‘Upload’])然后组合文件根路径成为target_path就是目标路径。
$target_path = DVWA_WEB_PAGE_TO_ROOT.“hackable/uploads/”;
(上面的作用:DVWA_WEB_PAGE_TO_ROOT=D:\phpstudy\WWW\DVWA
$target_path=D:\phpstudy\WWW\DVWA/hackable/uploads/)
t a r g e t p a t h = t a r g e t p a t h . b a s e n a m e ( target_path = target_path .basename( targetpath=targetpath.basename(_FILES[‘uploaded’][‘name’]);(即在)
因此最终你上传的文件的最终路径为:路径后面添加文件名,形成完整路径
KaTeX parse error: Undefined control sequence: \phpstudy at position 15: target_path=D:\̲p̲h̲p̲s̲t̲u̲d̲y̲\WWW\DVWA/hacka…_FILES[ ‘uploaded’ ][ ‘name’ ] //文件原始名称
3、$_FILES[ ‘uploaded’ ][ ‘tmp_name’ ], //文件临时路径
4、
3、DVWA:FILE UPLOAD_第2张图片
结果上传个文件成功
3、DVWA:FILE UPLOAD_第3张图片
2、medium

我们看到中等级就相对严密了很多,它对文件的类型和大小做了明确的限制。
3、DVWA:FILE UPLOAD_第4张图片
( uploaded_type == “image/jpeg” || uploaded_type == “image/png” ) &&
( $uploaded_size < 100000 )
限定了格式为image/jpeg或是png 大小小于100000字节的文件才能上传,而这个问题我们抓包就可以解决。


作者:Hackpatrick
来源:CSDN
原文:https://blog.csdn.net/qq_37757008/article/details/81408567
版权声明:本文为博主原创文章,转载请附上博文链接!
更改:
因为大部分的木马文件都比较小。故更改下文件类型即可。通过burpsuite抓包,默认type类型是application/octer-stream 。我们将其类型改为 image/jpeg ,然后go上传,可以看到,已经上传成功!
3、DVWA:FILE UPLOAD_第5张图片
结果:
3、DVWA:FILE UPLOAD_第6张图片

(3)HIGH3、DVWA:FILE UPLOAD_第7张图片
(1) strrpos(string , find ,start) 查找find字符在string字符中的最后一次出现的位置,start参数可选,表示指定从哪里开始
(2) substr(string,start,length) 返回string字符中从start开始的字符串,length参数可选,表示返回字符的长度
(3) strtolower(string) 返回给定字符串的小写
(4) getimagesize(string) :函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串。如果不能访问 filename 指定的图像或者其不是有效的图像,getimagesize() 将返回 FALSE 并产生一条 E_WARNING级的错误。所以 getimagesize函数的作用是判断上传的文件是不是有效的图片
(5)move_uploaded_file(file,newlocal) 函数表示把给定的文件移动到新的位置
所以 $uploaded_ext 表示的是上传文件的后缀名 ,这里限制上传的文件的后缀名必须以 jpg 、jpeg 或 png 结尾,同时大小<100000,同时上传的文件必须是有效的图片格式(不只是以图片的格式结尾,而且文件内容是图片格式的)。
---------------------

原文:https://blog.csdn.net/qq_36119192/article/details/82904642

(($uploaded_ext = substr( $uploaded_name, strrpos( $uploaded_name, ‘.’) + 1); //其实他是防范iis 6.0文件解析漏洞的,有时我们为了绕过限制会提交这样形式的文件:Xx.asp;.xx.jpg xx.jpg
而这句话的作用就是说它会验证文件的最后一个点之后的格式上面的例子来说就是不管你前面写了多少,我只验证最后的 ’.jpg’

因此:我们要把文件名改为123.jpg
内容如下:

因为要检查其内容所以要在内容前加上PHP专有

你可能感兴趣的:(DVWA)