现在,最新的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
本文介绍Insecure CAPTCHA模块的相关内容,后续教程会在之后的文章中给出。
Insecure CAPTCHA
Insecure CAPTCHA,意思是不安全的验证码,CAPTCHA是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区别计算机和人类的图灵测验)的简称。但个人觉得,这一模块的内容叫做不安全的验证流程更稳当些,由于这块主要是验证流程呈现了逻辑缝隙,谷歌的验证码表明不背这个锅。
reCAPTCHA验证流程
这一模块的验证码运用的是Google供给reCAPTCHA服务,下图是验证的详细流程。
服务器经过调用recaptcha_check_answer函数查看用户输入的正确性。
recaptcha_check_answer($privkey,$remoteip, $challenge,$response)
参数$privkey是服务器请求的private key ,$remoteip是用户的ip,$challenge 是recaptcha_challenge_field 字段的值,来自前端页面 ,$response是 recaptcha_response_field 字段的值。函数回来ReCaptchaResponse class的实例,ReCaptchaResponse 类有2个特点 :
$is_valid是布尔型的,表明校验是否有用,
$error是回来的过错代码。
(ps:有人或许会问,那这个模块的试验是不是需求科学上网呢?答案是不必,由于咱们能够绕过验证码)
下面临四种等级的代码进行剖析。
Low
服务器端中心代码:
if( isset( $_POST[ 'Change' ] ) && ( $_POST[ 'step' ] == '1' ) ) { // Hide the CAPTCHA form $hide_form = true; // Get input $pass_new = $_POST[ 'password_new' ]; $pass_conf = $_POST[ 'password_conf' ]; // Check CAPTCHA from 3rd party $resp = recaptcha_check_answer( $_DVWA[ 'recaptcha_private_key' ], $_SERVER[ 'REMOTE_ADDR' ], $_POST[ 'recaptcha_challenge_field' ], $_POST[ 'recaptcha_response_field' ] ); // Did the CAPTCHA fail? if( !$resp->is_valid ) { // What happens when the CAPTCHA was entered incorrectly $html .= "
The CAPTCHA was incorrect. Please try again."; $hide_form = false; return; } else { // CAPTCHA was correct. Do both new passwords match? if( $pass_new == $pass_conf ) { // Show next stage for the user echo "
You passed the CAPTCHA! Click the button to confirm your changes. {$pass_new}" /> {$pass_conf}" /> "; } else { // Both new passwords do not match. $html .= "
[1] [2] [3] [4] [5] [6] 黑客接单网
关于一个Web开发人员来说,Fiddler并不生疏。作为一款Web调试利器,它具有强壮的调试功用,灵敏的装备以及丰厚的可扩展功用。我在开发工作中,最喜爱的便是它的Inspectors和AutoResp...
2019年11月,Chafer要挟小组针对土耳其政府从头运用他们在2019年早些时候运用的基础设施(Clearsky报导的活动中),特别是域名win10-update [.] com。尽管咱们没有见到...
上周末,一个好兄弟找我说一个很重要的方针shell丢了,这个shell之前是经过一个S2代码履行的缝隙拿到的,现在缝隙还在,不过web目录悉数不可写,问我有没有办法搞个webshell持续做内网。正好...
今日想共享一下安全脚本的编写,以防CC脚本举个比如。 工作是这样发作的,因为商业竞赛火热,不免有些公司会呈现歹意竞赛的现象,其实CC进犯算是最简略施行的一种DDoS类别进犯吧,在之前我地点的公司就遭...
我的Web运用安全含糊测验之路 什么是Web运用中的含糊测验? Web运用是根据什么进行传输的?HTTP协议。 含糊测验是什么?Payload随机。 Payload放哪里?HTTP恳求报文格局是什么?...
blueCMS介绍 个人认为,作为一个要入门代码审计的人,审计流程应该从简略到困难,逐渐提高。因而我主张咱们的审计流程为——DVWA——blueCMS——其他小众CMS——结构。一起做总结,搞清楚缝隙...