摘要:
最近在学web安全,于是准备拿DVWA来练一练手,现将学习过程总结如下,旨在与朋友们交流,错误的地方还望大家指正。 学习目录 DVWA-0 DVWA简介及环境搭建 DVWA-1.1 Brute Force(暴力破解)-LowDVWA-1.2 Brute Force(暴力破解)-MediumDVWA- 阅读全文
posted @ 2020-05-06 17:31
zhengna
阅读(1993)
评论(0)
推荐(0)
摘要:
Impossible Level 前台页面 提示:永远不能相信来自用户输入的任何信息,必须假设发送给用户的任何代码都可以被操纵或绕过,因此没有不可能的级别。 意思就是说,只要token是在客户端生成的,不论你的代码有多复杂,用户永远有办法操纵或者绕过它,因此,token的生成一定要在服务器端。 另外 阅读全文
posted @ 2020-05-06 17:29
zhengna
阅读(315)
评论(0)
推荐(0)
摘要:
High Level 高级和中级类似,生成 token 的逻辑在额外的 js 文件中。和中级不同的是,这里的 JS 经过了混淆,就显得很混乱。 而 http://deobfuscatejavascript.com中提供的功能是,把混淆后的代码转成人类能看懂一些 js 代码。 其中关键的部分是这里: 阅读全文
posted @ 2020-05-06 17:27
zhengna
阅读(453)
评论(0)
推荐(0)
摘要:
Medium Level 思路与Low级别是一样的,只是生成 token 的函数放到另外的 js 文件中了。 首先我们输入success,点击submit,页面返回“Invalid token.” 抓包发现,请求中的token值为空,所以我们需要构造正确的token。 查看前端源代码,发现生成tok 阅读全文
posted @ 2020-05-06 17:26
zhengna
阅读(415)
评论(0)
推荐(0)
摘要:
Low Level 查看页面 点击submit,发现页面返回“You got the phrase wrong.”。页面提示需要我们提交单词success。 尝试将输入框单词改为success,点击submit,后台返回“Invalid token.” F12查看前端源代码,发现token是在前端生 阅读全文
posted @ 2020-05-06 17:24
zhengna
阅读(1166)
评论(0)
推荐(1)
摘要:
Impossible Level 查看源码 impossible.php <?php $headerCSP = "Content-Security-Policy: script-src 'self';"; header($headerCSP); ?> <?php if (isset ($_POST[ 阅读全文
posted @ 2020-05-06 17:22
zhengna
阅读(342)
评论(0)
推荐(0)
摘要:
High Level 查看源码 high.php <?php $headerCSP = "Content-Security-Policy: script-src 'self';"; header($headerCSP); ?> <?php if (isset ($_POST['include'])) 阅读全文
posted @ 2020-05-06 17:21
zhengna
阅读(433)
评论(0)
推荐(0)
摘要:
Medium Level 查看代码 <?php $headerCSP = "Content-Security-Policy: script-src 'self' 'unsafe-inline' 'nonce-TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=';"; heade 阅读全文
posted @ 2020-05-06 17:20
zhengna
阅读(358)
评论(0)
推荐(0)
摘要:
CSP Content-Security-Policy是指HTTP返回报文头中的标签,浏览器会根据标签中的内容,判断哪些资源可以加载或执行。翻译为中文就是内容安全策略。是为了缓解潜在的跨站脚本问题(XSS),浏览器的扩展程序系统引入了内容安全策略这个概念。原来应对XSS攻击时,主要采用函数过滤、转义 阅读全文
posted @ 2020-05-06 17:19
zhengna
阅读(854)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Check Anti-CSRF token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_t 阅读全文
posted @ 2020-05-06 17:17
zhengna
阅读(415)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message = trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] ) 阅读全文
posted @ 2020-05-06 17:16
zhengna
阅读(388)
评论(0)
推荐(0)
摘要:
Medium Level 查看代码 <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message = trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] 阅读全文
posted @ 2020-05-06 17:15
zhengna
阅读(453)
评论(0)
推荐(0)
摘要:
Low Level 查看代码 <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message = trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] ); 阅读全文
posted @ 2020-05-06 17:13
zhengna
阅读(318)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Check Anti-CSRF token check 阅读全文
posted @ 2020-05-06 17:12
zhengna
阅读(604)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php header ("X-XSS-Protection: 0"); // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // G 阅读全文
posted @ 2020-05-06 17:11
zhengna
阅读(458)
评论(0)
推荐(0)
摘要:
Medium Level 查看代码 <?php header ("X-XSS-Protection: 0"); // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // 阅读全文
posted @ 2020-05-06 17:10
zhengna
阅读(262)
评论(0)
推荐(0)
摘要:
Low Level 查看代码 <?php header ("X-XSS-Protection: 0"); // Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Fe 阅读全文
posted @ 2020-05-06 17:09
zhengna
阅读(298)
评论(0)
推荐(0)
摘要:
Impossible Level 服务器端核心代码 <?php # Don't need to do anything, protction handled on the client side ?> 客户端核心代码 由于大多数浏览器默认将从URL中获取的内容进行编码,而客户端的源代码中直接将编码后 阅读全文
posted @ 2020-05-06 17:08
zhengna
阅读(686)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php // Is there any input? if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) { # White list the allowable 阅读全文
posted @ 2020-05-06 17:07
zhengna
阅读(447)
评论(0)
推荐(0)
摘要:
Medium Level 查看代码 <?php // Is there any input? if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) { $default = $_GET['defaul 阅读全文
posted @ 2020-05-06 17:06
zhengna
阅读(491)
评论(0)
推荐(0)
摘要:
XSS XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强调的是,XSS不仅仅限于JavaScript,还包括flash等其它脚本语言。根据恶意代码是否存储在 阅读全文
posted @ 2020-05-06 17:02
zhengna
阅读(1205)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php $html = ""; if ($_SERVER['REQUEST_METHOD'] == "POST") { $cookie_value = sha1(mt_rand() . time() . "Impossible"); setcookie 阅读全文
posted @ 2020-05-06 17:01
zhengna
阅读(230)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php $html = ""; if ($_SERVER['REQUEST_METHOD'] == "POST") { if (!isset ($_SESSION['last_session_id_high'])) { $_SESSION['last_sessio 阅读全文
posted @ 2020-05-06 17:00
zhengna
阅读(616)
评论(0)
推荐(0)
摘要:
Medium Level 查看代码 <?php $html = ""; if ($_SERVER['REQUEST_METHOD'] == "POST") { $cookie_value = time(); setcookie("dvwaSession", $cookie_value); } ?> 阅读全文
posted @ 2020-05-06 16:59
zhengna
阅读(302)
评论(0)
推荐(0)
摘要:
Weak Session IDs 当用户登陆后,在服务器端就会创建一个会话(Session),接着访问页面的时候就不用登陆,只需要携带Session去访问。SessionID作为特定用户访问站点所需的唯一内容。如果能够计算或轻易猜到该SessionID,则攻击者将可以轻易获取访问权限,无需登录密码直 阅读全文
posted @ 2020-05-06 16:58
zhengna
阅读(541)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php if( isset( $_GET[ 'Submit' ] ) ) { // Check Anti-CSRF token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_tok 阅读全文
posted @ 2020-05-06 16:57
zhengna
阅读(311)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php if( isset( $_COOKIE[ 'id' ] ) ) { // Get input $id = $_COOKIE[ 'id' ]; // Check database $getid = "SELECT first_name, last_name 阅读全文
posted @ 2020-05-06 16:56
zhengna
阅读(520)
评论(0)
推荐(0)
摘要:
Medium Level 查看代码 <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $id = $_POST[ 'id' ]; $id = ((isset($GLOBALS["___mysqli_ston"]) && is_object( 阅读全文
posted @ 2020-05-06 16:55
zhengna
阅读(619)
评论(0)
推荐(0)
摘要:
SQL Injection(Blind) SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。目前网络上 阅读全文
posted @ 2020-05-06 16:54
zhengna
阅读(680)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php if( isset( $_GET[ 'Submit' ] ) ) { // Check Anti-CSRF token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_tok 阅读全文
posted @ 2020-05-06 16:53
zhengna
阅读(829)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php if( isset( $_SESSION [ 'id' ] ) ) { // Get input $id = $_SESSION[ 'id' ]; // Check database $query = "SELECT first_name, last_na 阅读全文
posted @ 2020-05-06 16:52
zhengna
阅读(868)
评论(0)
推荐(0)
摘要:
Medium Level 查看代码 <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $id = $_POST[ 'id' ]; $id = mysqli_real_escape_string($GLOBALS["___mysqli_sto 阅读全文
posted @ 2020-05-06 16:51
zhengna
阅读(1290)
评论(0)
推荐(0)
摘要:
Low Level 查看源码 <?php if( isset( $_REQUEST[ 'Submit' ] ) ) { // Get input $id = $_REQUEST[ 'id' ]; // Check database $query = "SELECT first_name, last_ 阅读全文
posted @ 2020-05-06 16:50
zhengna
阅读(571)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php if( isset( $_POST[ 'Change' ] ) ) { // Check Anti-CSRF token token验证 checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'se 阅读全文
posted @ 2020-05-06 16:49
zhengna
阅读(279)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php if( isset( $_POST[ 'Change' ] ) ) { // Hide the CAPTCHA form $hide_form = true; // Get input $pass_new = $_POST[ 'password_new' 阅读全文
posted @ 2020-05-06 16:48
zhengna
阅读(370)
评论(0)
推荐(0)
摘要:
Medium Level 查看代码 <?php if( isset( $_POST[ 'Change' ] ) && ( $_POST[ 'step' ] == '1' ) ) { // Hide the CAPTCHA form $hide_form = true; // Get input $p 阅读全文
posted @ 2020-05-06 16:47
zhengna
阅读(330)
评论(0)
推荐(0)
摘要:
Insecure CAPTCHA Insecure CAPTCHA,意思是不安全的验证码,CAPTCHA是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称。 阅读全文
posted @ 2020-05-06 16:46
zhengna
阅读(637)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php if( isset( $_POST[ 'Upload' ] ) ) { // Check Anti-CSRF token 校验token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'se 阅读全文
posted @ 2020-05-06 16:45
zhengna
阅读(1322)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php if( isset( $_POST[ 'Upload' ] ) ) { // Where are we going to be writing to? $target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/upl 阅读全文
posted @ 2020-05-06 16:44
zhengna
阅读(2850)
评论(1)
推荐(1)
摘要:
Medium Level 查看代码 <?php if( isset( $_POST[ 'Upload' ] ) ) { // Where are we going to be writing to? $target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/u 阅读全文
posted @ 2020-05-06 16:43
zhengna
阅读(975)
评论(0)
推荐(0)
摘要:
Low Level 查看源码 <?php if( isset( $_POST[ 'Upload' ] ) ) { // Where are we going to be writing to? $target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uplo 阅读全文
posted @ 2020-05-06 16:42
zhengna
阅读(576)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php // The page we wish to display $file = $_GET[ 'page' ]; // Only allow include.php or file{1..3}.php if( $file != "include. 阅读全文
posted @ 2020-05-06 16:41
zhengna
阅读(408)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php // The page we wish to display $file = $_GET[ 'page' ]; // Input validation if( !fnmatch( "file*", $file ) && $file != "include. 阅读全文
posted @ 2020-05-06 16:40
zhengna
阅读(882)
评论(0)
推荐(0)
摘要:
Medium Level 服务器端核心代码 <?php // The page we wish to display $file = $_GET[ 'page' ]; // Input validation $file = str_replace( array( "http://", "https: 阅读全文
posted @ 2020-05-06 16:39
zhengna
阅读(1162)
评论(0)
推荐(0)
摘要:
File Inclusion File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件, 阅读全文
posted @ 2020-05-06 16:36
zhengna
阅读(651)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php if( isset( $_GET[ 'Change' ] ) ) { // Check Anti-CSRF token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_tok 阅读全文
posted @ 2020-05-06 16:35
zhengna
阅读(727)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php if( isset( $_GET[ 'Change' ] ) ) { // Check Anti-CSRF token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 阅读全文
posted @ 2020-05-06 16:34
zhengna
阅读(2436)
评论(0)
推荐(0)
摘要:
Medium Level 查看源码 <?php if( isset( $_GET[ 'Change' ] ) ) { // Checks to see where the request came from if( stripos( $_SERVER[ 'HTTP_REFERER' ] ,$_SER 阅读全文
posted @ 2020-05-06 16:33
zhengna
阅读(1208)
评论(0)
推荐(0)
摘要:
Low Level 查看源码 <?php if( isset( $_GET[ 'Change' ] ) ) { // Get input $pass_new = $_GET[ 'password_new' ]; $pass_conf = $_GET[ 'password_conf' ]; // Do 阅读全文
posted @ 2020-05-06 16:31
zhengna
阅读(546)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php if( isset( $_POST[ 'Submit' ] ) ) { // Check Anti-CSRF token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_to 阅读全文
posted @ 2020-05-06 16:30
zhengna
阅读(869)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = trim($_REQUEST[ 'ip' ]); // Set blacklist $substitutions = array( '&' 阅读全文
posted @ 2020-05-06 16:29
zhengna
阅读(938)
评论(0)
推荐(0)
摘要:
Medium Level 查看源码 <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; // Set blacklist 黑名单:删掉&&和; $substitutions = arr 阅读全文
posted @ 2020-05-06 16:28
zhengna
阅读(590)
评论(0)
推荐(0)
摘要:
Low Level 查看源码 <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; // Determine OS and execute the ping command. if( s 阅读全文
posted @ 2020-05-06 16:17
zhengna
阅读(588)
评论(0)
推荐(0)
摘要:
Impossible Level 查看源码 <?php if( isset( $_POST[ 'Login' ] ) && isset ($_POST['username']) && isset ($_POST['password']) ) { // Check Anti-CSRF token 校验 阅读全文
posted @ 2020-05-06 16:06
zhengna
阅读(1280)
评论(0)
推荐(0)
摘要:
High Level 查看源码 <?php if( isset( $_GET[ 'Login' ] ) ) { // Check Anti-CSRF token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 阅读全文
posted @ 2020-05-06 16:04
zhengna
阅读(2165)
评论(0)
推荐(1)
摘要:
Medium Level 此阶段在失败的登录页面上加上了sleep(2),这意味着当我们输入的用户名或密码错误时,将需要等待额外的两秒钟才能看到错误页面。这只会减少单位时间内可处理的请求数量,从而使暴力破解的时间更长。 另外,本阶段源码通过mysql-real-escape-string()函数对输 阅读全文
posted @ 2020-05-06 16:03
zhengna
阅读(682)
评论(0)
推荐(0)
浙公网安备 33010602011771号