原本是像写一篇 SELinux 的文章的。而我写总结文章的时候,总会去想原因是什么,为什么会有这种需求。而我发觉 SELinux 的需求是编程人员的神奇代码或者维护者的脑袋短路而造成系统容易被攻击。就想找个充满漏洞的系统来证明 SELinux 的必要性。就找到了 DVWA 。因为它存在很多方面的漏洞,而且还有不同级别的攻击方式,觉得还挺好玩的。。。所以就不如开发一遍新大陆,把攻防两端的手段也记录一下。

DVWA 介绍

DVWA 就是个充满漏洞的系统, 全称是 Damn Vulnerable Web Application(该死的充满漏洞的网络应用),漏洞大体有这么几个:

  • Brute Force(暴力(破解))
  • Command Injection(命令行注入)
  • CSRF(跨站请求伪造)
  • File Inclusion(文件包含)
  • File Upload(文件上传)
  • Insecure CAPTCHA(不安全的验证码)
  • SQL Injection(SQL注入)
  • SQL Injection(Blind)(SQL盲注)
  • XSS(Reflected)(反射型跨站脚本)
  • XSS(Stored)(存储型跨站脚本)

而且还有级别的

  1. 低级:这安全级别非常容易受到攻击,毫无安全措施可言。它的作用是,用错误的编码让 Web应用程序的漏洞表现出来,并作为教授或者学习基本开发技术的平台。
  2. 中级:这个级别,开发人员会尝试保护但是失败。。。主要是提供一些不良代码实践(反模式)。它还对用户提出挑战,以改进他们的开发技术。
  3. 高级:这选项是中级难度的扩展,会混用更难攻击的代码或者替换不良代码来尝试保护。该漏洞可能不允许相同程度的利用(exploitation),类似于各种 Capture The Flags(CTFs)竞赛。
  4. 不可能。这个级别应该可以抵御所有漏洞。这是用来将有漏洞的代码和安全性代码做对比的。

看完这些介绍是否觉得有点像玩电子游戏,有不同级别的挑战,有各种的成就。

安装

以前安装觉得还是有点麻烦的,我之前也没怎么写过 php。。。感谢大杀器 docker。

# 因为 80 端口我给了本机的 ngnix
docker run --rm -it -p 5678:80 vulnerables/web-dvwa

而进入到 docker 里面可以这样。 先用获取容器的 id

sudo docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                   PORTS                                                 NAMES
56e69b5b67b6 vulnerables/web-dvwa "/main.sh" 26 hours ago Up 26 hours 0.0.0.0:5678->80/tcp

再进入

sudo docker exec -it 56e69b5b67b6 bash

来看看它默认的环境 查看发行版

cat /etc/issue
Debian GNU/Linux 9

你看得没错,root 用户进程 再根据 Debian 的 SELinux 设置

check-selinux-installation
bash: check-selinux-installation: command not found

应该是没有安装 SELinux的。

看下 php 版本

打开网页看看,我的地址是 192.168.0.110

KaliLinux

对了说起网络安全, 想起了一个专门给渗透用的 Linux 发行版 KaliLinux ,预装了很多渗透用的的工具(有些工具还挺难装的),之后会用到的。而我选择用虚拟机,或许官方也知道很多人用虚拟机吧,官方专门有虚拟机的镜像文件下载(密码默认是 toor)

DVWA 系列的目录(已完结)

DVWA 黑客攻防演练(一) 介绍及安装的更多相关文章

  1. DVWA 黑客攻防演练(十一) 存储型 XSS 攻击 Stored Cross Site Scripting

    上一篇文章会介绍了反射型 XSS 攻击.本文主要是通过 dvwa 介绍存储型 XSS 攻击.存储型 XSS 攻击影响范围极大.比如是微博.贴吧之类的,若有注入漏洞,再假如攻击者能用上一篇文章类似的代码 ...

  2. DVWA 黑客攻防演练(九) SQL 盲注 SQL Injection (Blind)

    上一篇文章谈及了 dvwa 中的SQL注入攻击,而这篇和上一篇内容很像,都是关于SQL注入攻击.和上一篇相比,上一篇的注入成功就马上得到所有用户的信息,这部分页面上不会返回一些很明显的信息供你调试,就 ...

  3. DVWA 黑客攻防演练(二)暴力破解 Brute Froce

    暴力破解,简称"爆破".不要以为没人会对一些小站爆破.实现上我以前用 wordpress 搭建一个博客开始就有人对我的站点进行爆破.这是装了 WordfenceWAF 插件后的统计 ...

  4. DVWA 黑客攻防演练(十四)CSRF 攻击 Cross Site Request Forgery

    这么多攻击中,CSRF 攻击,全称是 Cross Site Request Forgery,翻译过来是跨站请求伪造可谓是最防不胜防之一.比如删除一篇文章,添加一笔钱之类,如果开发者是没有考虑到会被 C ...

  5. DVWA 黑客攻防演练(十三)JS 攻击 JavaScript Attacks

    新版本的 DVWA 有新东西,其中一个就是这个 JavaScript 模块了. 玩法也挺特别的,如果你能提交 success 这个词,成功是算你赢了.也看得我有点懵逼. 初级 如果你改成 " ...

  6. DVWA 黑客攻防演练(十)反射型 XSS 攻击 Reflected Cross Site Scripting

    XSS (Cross-site scripting) 攻击,为和 CSS 有所区分,所以叫 XSS.又是一种防不胜防的攻击,应该算是一种 "HTML注入攻击",原本开发者想的是显示 ...

  7. DVWA 黑客攻防演练(八)SQL 注入 SQL Injection

    web 程序中离不开数据库,但到今天 SQL注入是一种常见的攻击手段.如今现在一些 orm 框架(Hibernate)或者一些 mapper 框架( iBatis)会对 SQL 有一个更友好的封装,使 ...

  8. DVWA 黑客攻防演练(五)文件上传漏洞 File Upload

    说起文件上传漏洞 ,可谓是印象深刻.有次公司的网站突然访问不到了,同事去服务器看了一下.所有 webroot 文件夹下的所有文件都被重命名成其他文件,比如 jsp 文件变成 jsp.s ,以致于路径映 ...

  9. DVWA 黑客攻防演练(四)文件包含 File Inclusion

    文件包含(file Inclusion)是一种很常见的攻击方式,主要是通过修改请求中变量从而访问了用户不应该访问的文件.还可以通过这个漏洞加载不属于本网站的文件等.下面一起来看看 DVWA 中的文件包 ...

随机推荐

  1. CSS怎么在项目里引入自定义字体(@font-face)

    前言: 以前我一直用内置的默认字体给文字设置字体,直到一天UI妹纸给了我下面的字体    当时我是蒙蔽的,这个字体的效果如下 默认字体并无该字体,直接设置是没有效果的,这时就需要用到自定义字体了 下面 ...

  2. [Swift]LeetCode892. 三维形体的表面积 | Surface Area of 3D Shapes

    On a N * N grid, we place some 1 * 1 * 1 cubes. Each value v = grid[i][j] represents a tower of v cu ...

  3. ASP.NET Core WebApi AspNetCoreRateLimit 限流中间件学习

    AspNetCoreRateLimit介绍: AspNetCoreRateLimit是ASP.NET核心速率限制框架,能够对WebApi,Mvc中控制限流,AspNetCoreRateLimit包包含 ...

  4. 根据地址查询经纬度Js

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>根据地址查询经纬度</ ...

  5. C++实现多级排序

    stl中sort详细说明 实现功能:期末开始4位同学的成绩,按多级排序,排序规则为:按数学从小到大,如果数学相等,则按语文从大到小排列,如果语文相等,则按英语从小到大排列,如果英语相等,则按历史从大到 ...

  6. redis 系列22 复制Replication (下)

    一. 复制环境准备 1.1 主库环境(172.168.18.201) 环境 说明 操作系统版本 CentOS  7.4.1708  IP地址 172.168.18.201 网关Gateway 172. ...

  7. 用Javascript方式实现LeetCode中的算法(更新中)

    前一段时间抽空去参加面试,面试官一开始让我做一道题,他看完之后,让我回答一下这个题的时间复杂度并优化一下,当时的我虽然明白什么是时间复杂度,但不知道是怎么计算的,一开局出师不利,然后没然后了,有一次我 ...

  8. 从零打卡leetcode之day 2---两数相加

    前言 就是要把leetcode刷完,每天一道题,每天进步一点点. 从零打卡leetcode之day 2 题目描述: 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储, 它们的每个节点只存储单个 ...

  9. 【WCF学习大全】

    我的WCF之旅(1):创建一个简单的WCF程序 我的WCF之旅(2):Endpoint Overview 我的WCF之旅(3):在WCF中实现双向通信(Bi-directional Communica ...

  10. Java开发知识之Java的正则表达式

    目录 正则表达式 一丶什么是正则表达式 1.正则表达式简介 2.无正则表达式判断代码 3.使用正则表达式代码. 二丶正则表达式API 三丶正则表达式语法格式 1.正则表达式语法 正则表达式 一丶什么是 ...