原本是像写一篇 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)(存储型跨站脚本)
而且还有级别的
- 低级:这安全级别非常容易受到攻击,毫无安全措施可言。它的作用是,用错误的编码让 Web应用程序的漏洞表现出来,并作为教授或者学习基本开发技术的平台。
- 中级:这个级别,开发人员会尝试保护但是失败。。。主要是提供一些不良代码实践(反模式)。它还对用户提出挑战,以改进他们的开发技术。
- 高级:这选项是中级难度的扩展,会混用更难攻击的代码或者替换不良代码来尝试保护。该漏洞可能不允许相同程度的利用(exploitation),类似于各种 Capture The Flags(CTFs)竞赛。
- 不可能。这个级别应该可以抵御所有漏洞。这是用来将有漏洞的代码和安全性代码做对比的。
看完这些介绍是否觉得有点像玩电子游戏,有不同级别的挑战,有各种的成就。
安装
以前安装觉得还是有点麻烦的,我之前也没怎么写过 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 系列的目录(已完结)
- 暴力破解 Brute Froce
- 命令行注入 Command Injection
- CSRF 攻击 Cross Site Request Forgery
- 文件包含 File Inclusion
- 文件上传漏洞 File Upload
- 不安全的验证码 Insecure CAPTCHA
- weak sessionId
- SQL注入 SQL Injection
- SQL 盲注 SQL Injection Blind
- 反射型 XSS 攻击
- 存储型 XSS 攻击 Stored Cross Site Scripting
- DOM型 XSS 攻击 DOM Based Cross Site Scripting
- js 攻击 JavaScript Attacks
- 绕过内容安全策略 Content Security Policy (CSP) Bypass
DVWA 黑客攻防演练(一) 介绍及安装的更多相关文章
-
DVWA 黑客攻防演练(十一) 存储型 XSS 攻击 Stored Cross Site Scripting
上一篇文章会介绍了反射型 XSS 攻击.本文主要是通过 dvwa 介绍存储型 XSS 攻击.存储型 XSS 攻击影响范围极大.比如是微博.贴吧之类的,若有注入漏洞,再假如攻击者能用上一篇文章类似的代码 ...
-
DVWA 黑客攻防演练(九) SQL 盲注 SQL Injection (Blind)
上一篇文章谈及了 dvwa 中的SQL注入攻击,而这篇和上一篇内容很像,都是关于SQL注入攻击.和上一篇相比,上一篇的注入成功就马上得到所有用户的信息,这部分页面上不会返回一些很明显的信息供你调试,就 ...
-
DVWA 黑客攻防演练(二)暴力破解 Brute Froce
暴力破解,简称"爆破".不要以为没人会对一些小站爆破.实现上我以前用 wordpress 搭建一个博客开始就有人对我的站点进行爆破.这是装了 WordfenceWAF 插件后的统计 ...
-
DVWA 黑客攻防演练(十四)CSRF 攻击 Cross Site Request Forgery
这么多攻击中,CSRF 攻击,全称是 Cross Site Request Forgery,翻译过来是跨站请求伪造可谓是最防不胜防之一.比如删除一篇文章,添加一笔钱之类,如果开发者是没有考虑到会被 C ...
-
DVWA 黑客攻防演练(十三)JS 攻击 JavaScript Attacks
新版本的 DVWA 有新东西,其中一个就是这个 JavaScript 模块了. 玩法也挺特别的,如果你能提交 success 这个词,成功是算你赢了.也看得我有点懵逼. 初级 如果你改成 " ...
-
DVWA 黑客攻防演练(十)反射型 XSS 攻击 Reflected Cross Site Scripting
XSS (Cross-site scripting) 攻击,为和 CSS 有所区分,所以叫 XSS.又是一种防不胜防的攻击,应该算是一种 "HTML注入攻击",原本开发者想的是显示 ...
-
DVWA 黑客攻防演练(八)SQL 注入 SQL Injection
web 程序中离不开数据库,但到今天 SQL注入是一种常见的攻击手段.如今现在一些 orm 框架(Hibernate)或者一些 mapper 框架( iBatis)会对 SQL 有一个更友好的封装,使 ...
-
DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
说起文件上传漏洞 ,可谓是印象深刻.有次公司的网站突然访问不到了,同事去服务器看了一下.所有 webroot 文件夹下的所有文件都被重命名成其他文件,比如 jsp 文件变成 jsp.s ,以致于路径映 ...
-
DVWA 黑客攻防演练(四)文件包含 File Inclusion
文件包含(file Inclusion)是一种很常见的攻击方式,主要是通过修改请求中变量从而访问了用户不应该访问的文件.还可以通过这个漏洞加载不属于本网站的文件等.下面一起来看看 DVWA 中的文件包 ...
随机推荐
-
Hadoop 简介
一个开源的,高可靠,可扩展的分布式计算框架 解决的问题 1 海量数据的存储(HDFS) 2海量数据的分析(Mapreduce) 3 分布式资源调度 (Yarn) 应用场景 日志分析,基于海量数据的在线 ...
-
POJ 1041问题描述
Description Little Johnny has got a new car. He decided to drive around the town to visit his friend ...
-
理解和配置 Linux 下的 OOM Killer
原文:http://www.vpsee.com/2013/10/how-to-configure-the-linux-oom-killer/ 最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有 ...
-
(转)Const,Const函数,Const变量,函数后面的Const
本文转自http://www.cnblogs.com/Fancyboy2004/archive/2008/12/23/1360810.html 看到const 关键字,C++程序员首先想到的可能是co ...
-
转:JS日期加减,日期运算
原文 出处http://hi.baidu.com/tonlywang/item/685fba8933a2a756e73d1950 一.日期减去天数等于第二个日期 function cc(dd,dadd ...
-
LINQ Enumerable 续
筛选序列 Enumerable.Distinct 对于复杂的对象列表,运行时引擎如何才能通过比较确定两个对象是否重复?对于复杂对象,必须提供一个比较器,即实现IEqualityComparer(Of ...
-
mv,Directory not empty不能目录覆盖
一.mv /test1/* /test2/test1rm -rf /test1 二. You can however use rsync with the --remove-source-files ...
-
Android常用控件之ExpandableList的使用
先来看下什么是ExpandableListView 跟列表有点像,这种是可以折叠的列表,下面来看下是如何在代码中实现 一.在布局文件中声明一个ExpandableListView <Linear ...
-
android开源应用(主要是博客上带有分析的)收集 【持续更新】
2014.5.24更新: (android高仿系列)今日头条 http://blog.csdn.net/vipzjyno1/article/details/26514543 CSDN Andro ...
-
原生JS封装animate运动框架
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...