现在,最新的DVWA现已更新到1.9版别(http://www.dvwa.co.uk/),而网上的教程大多停留在旧版别,且没有针对DVWA high等级的教程,因而萌发了一个编撰新手教程的主意,过错的当地还请我们纠正。
DVWA简介
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性判定的PHP/MySQL Web使用,旨在为安全专业人员测验自己的专业技能和东西供给合法的环境,协助web开发者更好的了解web使用安全防备的进程。
DVWA共有十个模块,分别是
Brute Force(暴力(破解))
Command Injection(指令行注入)
CSRF(跨站恳求假造)
File Inclusion(文件包括)
File Upload(文件上传)
Insecure CAPTCHA (不安全的验证码)
SQL Injection(SQL注入)
SQL Injection(Blind)(SQL盲注)
XSS(Reflected)(反射型跨站脚本)
XSS(Stored)(存储型跨站脚本)
需求留意的是,DVWA 1.9的代码分为四种安全等级:Low,Medium,High,Impossible。初学者能够经过比较四种等级的代码,接触到一些PHP代码审计的内容。
DVWA的建立
Freebuf上的这篇文章《新手攻略:手把手教你怎么建立自己的浸透测验环境》(http://www.freebuf.com/sectool/102661.html)现已写得十分好了,在这儿就不赘述了。
之前模块的相关内容
Brute Force
Command Injection
CSRF
File Inclusion
本文介绍File Upload模块的相关内容,后续教程会在之后的文章中给出。
File Upload
File Upload,即文件上传缝隙,通常是因为对上传文件的类型、内容没有进行严厉的过滤、查看,使得攻击者能够经过上传木马获取服务器的webshell权限,因而文件上传缝隙带来的损害常常是毁灭性的,Apache、Tomcat、Nginx等都曝出过文件上传缝隙。
下面临四种等级的代码进行剖析。
Low
服务器端中心代码
if( isset( $_POST[ 'Upload' ] ) ) { // Where are we going to be writing to? $target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/d/file/uploads/"; $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] ); // Can we move the file to the upload folder? if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) { // No echo '
Your image was not uploaded.'; } else { // Yes! echo "
{$target_path} succesfully uploaded!"; } } ?>
basename(path,suffix)
函数回来途径中的文件名部分,假如可选参数suffix为空,则回来的文件名包括后缀名,反之不包括后缀名。
能够看到,服务器对上传文件的类型、内容没有做任何的查看、过滤,存在显着的文件上传缝隙,生成上传途径后,服务器会查看是否上传成功并回来相应提示信息。
缝隙使用
文件上传缝隙的使用是有约束条件的,首要当然是要能够成功上传木马文件,其次上传文件有必要能够被履行,最终便是上传文件的途径有必要可知。不幸的是,这儿三个条件全都满意。
上传文件hack.php(一句话木马)
上传成功,而且回来了上传途径
翻开我国菜刀,右键增加,
地址栏填入上传文件地点途径http://192.168.153.130/dvwa/hackable/d/file/uploads/hack.php,
参数名(一句话木马口令)为apple。
然后菜刀就会经过向服务器发送包括apple参数的post恳求,在服务器上履行恣意指令,获取webshell权限。
能够下载、修正服务器的一切文件。
能够翻开服务器的虚拟终端。
[1] [2] [3] [4] 黑客接单网