DVWA学习笔记

一开始有点乱,后期会整理哒

DVWA的安装

DVWA的基本漏洞——SQL

乌云上最常见的脚本漏洞莫过于SQL注入和XSS。

脚本安全的本质就是脚本接受了不安全的变量输入,又没得到有效的过滤,最后进入一些对敏感的函数就会对安全造成威胁。

最基本的SQL漏洞:

1 if(isset($_GET[‘Submit‘])){
2
3     // Retrieve data
4
5     $id = $_GET[‘id‘];
6
7     $getid = "SELECT first_name, last_name FROM users WHERE user_id = ‘$id‘";//low.php
8     $result = mysql_query($getid) or die(‘<pre>‘ . mysql_error() . ‘</pre>‘ );

没有任何检查,自然就可以控制id了,如果我们的输入是“‘ union select ....”,那么就相当于多执行了一个语句。当然,用什么语句也是很讲究的。

再来看medium等级的

 1 //medium.php
 2 if (isset($_GET[‘Submit‘])) {
 3
 4     // Retrieve data
 5
 6     $id = $_GET[‘id‘];
 7     $id = mysql_real_escape_string($id);
 8
 9     $getid = "SELECT first_name, last_name FROM users WHERE user_id = $id";
10
11     $result = mysql_query($getid) or die(‘<pre>‘ . mysql_error() . ‘</pre>‘ );
12
13     $num = mysql_numrows($result);

虽然$id经过了mysql_real_escape_string转义了’,可是因为后面的SQL语句$id没有单引号保护,会被系统认为是数值型,导致数值型注入。。

这个时候构造,连分号都不要了。。“ 1 union select ...”

DVWA的基本漏洞——XSS

脚本问题,终极目的是窃取cookie什么的。。

DVWA下的;low等级下,几乎没有什么防护,直接插入语句就可以了,像

<script>alert("五更钟")<script>

<script>alert(document.cookie)<script>

medium.php中,虽然对$message进行了尖括号转义,而且对 <script> 进行了替换,但是$name没有进行转义,而且跨站脚本可以用多种标签,如 <img /> ,等…。Name的 <input /> 限制了maxlength=‘10’的长度,但是我们的防御对象是精通技术的黑客。这种html下的长度限制是可以直接通过浏览器修改..然后通过大小写成功绕过str_replace(),插入XSS.

时间: 2024-07-28 19:49:19

DVWA学习笔记的相关文章

DVWA学习笔记--06--SQL Injection

0x00 终于到sql注入了 利用应用中传递的参数 ,将恶意sql语句注入到数据库执行 高危害的漏洞 dvwa里的这个指的是回显注入 0x01 low 在low下的全部源码 <?php if( isset( $_REQUEST[ 'Submit' ] ) ) { // Get input $id = $_REQUEST[ 'id' ]; // Check database $query = "SELECT first_name, last_name FROM users WHERE use

DVWA学习笔记--03--File Inclusion

0x00 第三个是文件包含漏洞 分为远程文件包含和本地文件包含两种 但是远程文件包含是需要开启allow_url_include()这个函数才行 0x01 low 在low下的全部源码 <?php // The page we wish to display $file = $_GET[ 'page' ]; ?> 想怎么包含怎么包含 如果包含的参数错了 则会报错 那么服务器的路径就给爆出来了(开了错误显示) 远程包含-- 本地包含-- 就没写别的文件  直接利用dvwa带的文件 如果不知道绝对

渗透学习笔记--基础篇--sql注入(字符型)

环境:dvwa1.7数据库:mysql前置知识:sql语句(Click me)      在进行sql注入前,我们先熟悉熟悉select语句.一.打开我们的sql终端 二.进入之后可以看到有mysql>我们输入sql语句,即可返回我们想要的结果,注意分号哟!我们使用的dvwa,在我们前几章设置的时候,会在数据库中生成一个dvwa的database:这里我们使用它来进行我们的select 语句:(1)使用dvwa数据库use dvwa;(2)在users表里查询用户名为'admin'的所有信息se

重读dvwa的笔记

0x00 花了些时间把dvwa重新看了一遍 虽然以前已经玩过这个 ,但是这次从源码出发的重读还是有新收获 决定写一个学习笔记 0x01 首先是环境搭建 类似的环境搭建文章网上有太多了 而且这篇文章也写的非常好(我就是参照这个搭建的) http://www.freebuf.com/sectool/102661.html 顺便一提测试的时候记得要在php.ini中开启几个函数 0x02 首先是Brute Force  暴力破解 low 在low下源码的部分 $user = $_GET[ 'usern

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Activiti 学习笔记记录(三)

上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件