您的位置:首页 > 其它

DVWA学习笔记

2016-03-22 09:46 155 查看
一开始有点乱,后期会整理哒

DVWA的安装

DVWA的基本漏洞——SQL

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

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

最基本的SQL漏洞:

if(isset($_GET['Submit'])){

// Retrieve data

$id = $_GET['id'];

$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";//low.php
$result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );


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

再来看medium等级的

//medium.php
if (isset($_GET['Submit'])) {

// Retrieve data

$id = $_GET['id'];
$id = mysql_real_escape_string($id);

$getid = "SELECT first_name, last_name FROM users WHERE user_id = $id";

$result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );

$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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: