DVWA

作者: 5f8689b959d5 | 来源:发表于2020-06-01 15:54 被阅读0次

    low csrf

    直接诱导url即可绕过

    medium csrf

    medium csrf
    • 添加了refer来进行限制,通过这个来进行身份验证。
    • 需要让受害者点击一个连接,因为refer头必须是服务器的地址,所以请求的文件需要放置在服务器中,这个就需要结合其他漏洞进行攻击。
    • payload
    <img src="http://192.168.153.130/dvwa/vulnerabilities/csrf/?password_new=hack&password_conf=hack&Change=Change#" border="0" style="display:none;"/>
    
    <h1>404<h1>
    
    <h2>file not found.<h2>
    
    

    High csrf

    报文:

    报文
    • 在添加refer的基础上,又加入了token值。
    • 但是仍然可以通过在服务器端添加代码的方式,诱导用户点击来获取cookie值。
    • payload
      payload
    • 当用户点击时,发生的动作为:


      上传
    • 访问这个地址,里面的payload。


      image.png
    • 首先访问test.html页面,然后再访问DVWA,从返回包中获取token值,再用token值构建请求,更改密码成功。

    文件上传 低

    • 一句话木马
    • 原理就是远程代码执行,把菜刀输入的指令发送的被攻击方,被攻击方执行运行。
    1. 把一句话木马<?php eval(@$_GET['a']); ?>写入php脚本文件中,上传。
    2. 上传成功,还返回了服务器保存路径。


      1.php
    • 需要解释一下这个一句话木马的含义。eval()函数,就是将里面的字符串当做php代码来运行。@$_POST['a']的意思是指把post请求中参数名为a的字符串当做php代码来执行。


      eval函数
    1. 那么根据上面所解释的一句话木马的意思,就是构造一个请求,请求的url就是在文件上传存储路径下面的,并且再构造一个参数a.


      找到文件路径之后,就访问,那么就启动了文件里面的代码,pass=whoami,就传入了参数,执行
    • 问号在这里起到一个连接的作用

    URL中“#” “?” &“”号的作用

    https://www.cnblogs.com/kaituorensheng/p/3776527.html

    文件上传 中

    以下是错误思路

    1. 直接上传木马错误,上传文件类型做限制了


      直接上传
    2. 将类型名字直接改掉


      改掉文件类型,改为jpeg

      这里是正确思路:

    • 其实需要修改的思路是对的,就是需要修改文件的类型,但是修改错地方了。


      修改橙色标注的地方,content-type为图片
    • 但是又不太明白图片的表达是什么,可以抓包查看一下成功的上传的数据包,这个时候BP的compare功能也可以用上场了。


      试试看修改这里行不行,不行的话,增加修改的位置

      -对比正确上传文件,修改请求包之后


      修改请求包之后,上传成功

    文件上传 高

    • 这个时候是直接判断上传的文件的后缀名格式。
      是不是想起来了文件解析漏洞~~~
      IIS和PHP的,因为我们知道他是PHP的嘛,直接利用Apache文件解析漏洞就可以啦。但是DVWA又限制了上传的文件类型,只有几样文件类型的后缀名才能成功,所以说使用Apache的解析漏洞是不可以成功的。

    • 那么来尝试一下一句话图片马


      弄好啦
      图片和木马写在一块了,这个时候再拿去上传
    • 之后再访问这个url


      image.png
    • 网上说这样子可以,但是实际上我也不知道情况,应该可以吧。保持怀疑
      还是说是图片马和菜刀利用吧
      。。。可是我的菜刀用不了,所以没有办法了。

    • 还有一个利用方法就是文件上传和文件包含一块利用。

    1. 上传文件,获取文件上传路径
    2. 利用文件包含执行这个文件

    蚁剑+DVWA+文件上传
    https://blog.csdn.net/qq_42342141/article/details/102815402

    蚁剑+DVWA+文件上传

    • 中国蚁剑是 一 款比菜刀还牛的shell控制端软件

    菜刀+DVWA+文件上传
    https://www.freebuf.com/articles/web/119467.html

    • 菜刀的使用


      image.png

      后面就能连接成功,看到里面的文件。


      连接成功

    这个菜刀工作原理就是远程命令执行嘛,跟DVWA里面的文件包含漏洞差不多,就是有个参数你是可以操作的,文件包含的漏洞,那个参数是系统本来自己的,但是菜刀的这个,是你先上传了一个文件上去,里面有个参数可以供我使用。比文件包含的操作多了一步,就是文件上传。

    SQL注入 低

    • 对于sql注入漏洞,第一步是判断是否存在这个漏洞。
    • 第二步是判断这个漏洞是字符型的注入还是数字型的注入。
    • 好累哦,其实还不如把它直接放进sqlmap里面跑算了。
    • 先不写sql注入了,毕竟sql注入


      单引号

    弱session_id

    每次请求的时候,cookie的DvwaSessiond的值都在规律变化

    那么另外一个浏览器,模拟其他的攻击者登录。

    需要下载一个postman来改数据包
    https://blog.csdn.net/daiqinge/article/details/78320560
    但是我的电脑现在不能访问外网妈的,等待建鹏的帮忙哦略略

    弱session ID 低等难度
    在这个实验里面,其实我还是不太明白
    现在描述一下我的操作

    1. 首先使用admin 的账号去登录DVWA,然后观察session id 的变化


      image.png
      image.png
    • 在这里插入一下一个我有一点奇怪的地方,就是在重放这个数据包的时候,这个session的值是还是在不 停的增加的,但是重放的session-id 没有任何变化,还是可以返回数据内容,这个是为什么呢,这样子又会有什么影响呢
      我觉得就是这样子只能跳转到请求的session值得界面,并且还有这算不算是一个漏洞,因为他的会话一直都存在,不会更改。是不是算是会话固定呢,我觉得算呢!


      image.png

      实际测试方法:
      a.不断重放一个实际网页来看数据包
      b. 查看这个数据包的页面,是否有变化
      c. 不断重放这个数据包,看是否能够请求成功。
      还有一个疑问的地方,好像单纯的改session ID 是不可以的,还有cookie的值全部都要改的,这个需要分析一下源码。

    1. session id 劫持


      session ID 的更新

      然后使用G账号发送A的cookie,看看是否能够成功


      image.png
    image.png

    所以后面我得到的结论就是,cookie要全部正确才可以,至少说服务端需要验证的参数都要正确才可以,不是说一个session ID 就可以的,他只是其中的一个因素。
    至于那个一直在更新的session ID 我到现在还不是很明白,为什么不要对应呢

    • 与盗取用户名、密码登陆用户帐户的方式有所不同,Session劫持是一种通过窃取用户的SessionID,使用该SessionID登录目标账户的攻击方法。此时攻击者实际上是使用了目标账户的有效Session。如果SessionID是保存在Cookie中的,则这种攻击可以成为Cookie劫持。
    • DVWA在清除了cookie之后,登录页面退出了登录,提醒重新登录。这个更能证明, cookie使用在登录之后,登录之后清除了cookie,那么就会导致登录凭证消失了,就没用咯

    学习链接
    https://www.freebuf.com/articles/web/131305.html
    点进去看啊,所有都是重点!所有都是大佬的笔记。一个会话存在问题的方式也很多的!
    https://www.freebuf.com/column/228476.html

    服务器生成的用以标识客户信息的cookie一般被称为sessionId,而通过一些手段获取其它用户sessionId的攻击就叫session劫持。
    可能意思就是说,session ID 不是只指返回包的那点session ID, 而是包含的整个session ID 的cookie,叫做weak session ID。

    XSS dom 低

    • DOM型漏洞
      DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。
    DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
    在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
    
    • 案例
    在里面选择
    分析
    • 虽然看上去好像只能从里面选择输入的值,但是其实可以通过修改数据包的方式。
    • 先从正常请求的数据包中来分析这个请求和返回内容


      拼凑这一段
    • 下面是添加了payload


      可能是因为是DOM型的原因,只是显示在了浏览器,没有经过对面服务器的原因吗,反正没有在返回包中回显出来哦
    • 把这段返回包复制到浏览器中显示


      已经执行了
    • 这里的payload是'"<script>alert('xss')</script>,表示是真的非常的低级哈哈哈。其实是可以把payload写得更加有攻击性的,比如获取cookie等等。在csrf漏洞利用中是利用链接来修改密码。也可以用来获取cookie啊等等,payload我不会写,可以在网上查。


      这里有一点点参考嘻嘻

    源码分析

    服务器中没有设置保护,前端页面也没有

    XSS dom 中

    直接使用之前的payload,直接什么都不返回了


    可能是做了什么绕过啊之类的

    查看原码,好像也没有过滤什么东西吧


    image.png
    • 我就想着创造这个样子的payload,来看看行不行
    '%22%3Cscript%3Ealert('xss')%3C/script%3E(这个是转换成了url编码)
    

    毕竟这个不是不存在了<script,但是还是不成功
    ASCII码转换又不会转换
    那就转换成Unicode编码


    好像也没有什么乱用
    • 这个可怎么办啊~~~~试试看尝试其他的payload,没有使用的script的
    • 事实上好像我一开始就错了咧,还是要好好搞懂代码才可以哦
    • 源码分析
      下面再来分析一下返回的响应包
    image.png
    • 插入payload
    • 因为现在已经把<script给过滤了,所以不能这么使用。可以使用加载图片的方式,如果图片有错则执行xx指令。因为代码的标签的原因,所以也需要闭合标签。<options>和<select>
      那么payload则为:</option></select><img src=1 onerror=alert(/xss/)>
      加载图片1,出错,就可以执行alert(/xss)

    这个是别人的作业
    https://www.jianshu.com/p/001daa7cf1f5

    1. 代码没有分析清楚
    2. 有很多闭合也不了解。以为只有' " 这种闭合,其实还有标签的闭合呢。

    xss DOM high

    • 源码分析
      设置白名单,只允许这些国家输入,其他的参数不行。
    • 但是忽略了一点 可以直接备注掉后面的payload,代码不检测了,但是还是在客户端显示的时候可以执行

    所以payload为:


    #<script>alert(/xss/)</script>

    这个时候就可以绕过了

    dom
    • xss DOM impossible

    image.png
    • 因为DOM Based XSS 的形成原因比较特别。这是由于客户端脚本自身解析不正确导致的安全问题。

    xss漏洞攻击
    https://www.jianshu.com/p/790fb57f3acb

    XSS 反射型 low

    抓包看一下


    image.png

    这个很明显跟DOM类型的不一样,DOM型可以看到是怎么调用的,因为是在客户端的嘛。但是反射型的这个就不可以。是不是可以闭合<pre>来看是否可以呢


    成功

    所以这个不是很难

    xss DOM medium

    image.png

    被过滤掉了。感觉过滤的操作还是和DOM型的是一样的。

    • 还是不太熟练,真的是需要学会闭合,就要学会代码
    image.png
    • DVWA XSS high


      还是这样子,就可以绕过了,问题不大
    • DVWA XSS impossible


      image.png

    xss strored low

    <script>alert(/xss/)</script>,只需要输入这个,就可以啦,下一次点击这个页面,就可以直接访问了

    CSP绕过

    CSP(浏览器内容安全策略)

    • 内容安全策略(CSP)是一种web应用技术用于帮助缓解大部分类型的内容注入攻击,包括XSS攻击和数据注入等,这些攻击可实现数据窃取、网站破坏和作为恶意软件分发版本等行为。该策略可让网站管理员指定客户端允许加载的各类可信任资源。

    • 当代网站太容易收到XSS的攻击,CSP就是一个统一有效的防止网站收到XSS攻击的防御方法。CSP是一种白名单策略,当有从非白名单允许的JS脚本出现在页面中,浏览器会阻止脚本的执行。

    • 本来是有个同源策略的,但是同源策略的限制比较多,毕竟有时候还是会加载其他的连接。所以就引用CSP,CSP限定了比较严格的策略和规则,限定外部的资源的加载和执行,即使攻击者发现漏洞,但是他还是没有办法注入脚本

    CSP的启用
    有两种方式:

    1. 通过HTTP头信息,content-security-policy的字段


      比如这个样子,
    2. 通过网页的<meta>标签

    <meta http-equiv="Content-Security-Policy" content="script-src 'self'">
    
    <meta>标签的定义和用法

    我们在页面引入一个cdn,但是meta的content只设置为script-src 'self'

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <meta http-equiv="Content-Security-Policy"  content="script-src 'self'"/>
        <title>Document</title>
        <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    </head>
    

    所以会看到如下结果


    拒绝加载脚本,因为它违反了以下内容安全策略指令:“script-src‘Self”。
    html<script>标签
    • 那么,csp还需要设置其他的url来源,只需要在meta标签上在增加其他url来源就可以了。
    <meta http-equiv="Content-Security-Policy"  content="script-src 'self' https://cdn.bootcss.com"/>
    

    我们已经看到了script-src如何设置,其实它同样是适用于其他资源的限制

    • 除了限制外部脚本连接之外,还有很多可以限制的。比如
    1. script-src: 外部脚本
    2. style-src:script-src 版的样式表
    3. img-src: 用于定义可从中加载图像的来源。
    4. font-src: 用于指定可提供网页字体的来源
    5. media-src: 用于限制允许传输视频和音频的来源。
    6. object-src: 可对 Flash 和其他插件进行控制。
    7. plugin-types: 用于限制页面可以调用的插件种类。
    8. child-src: 用于列出适用于工作线程和嵌入的帧内容的网址(框架)
      default-src
      默认情况下,这些指令的适用范围很广。如果您不为某条指令(例如,font-src)设置具体的政策,则默认情况下,该指令在运行时假定您指定 * 作为有效来源(例如,您可以从任意位置加载字体,没有任何限制)。可以通过指定一个 default-src 指令替换此默认行为.
    <meta http-equiv="Content-Security-Policy"  content="default-src 'self'"/>
    
    

    上面代码限制所有的外部资源,都只能从当前域名加载
    如果同时设置某个单项限制(比如font-src)和default-src,前者会覆盖后者,即字体文件会采用font-src的值,其他资源依然采用default-src的值。

    CSP bypass low

    • 首先查看一下源代码

    自己看一下吧,我不想写了,因为我不懂
    https://www.jianshu.com/p/59b748f0f046
    https://www.cnblogs.com/jojo-feed/p/10204588.html

    DVWA访问异常 XAMMP

    chmod -R 777 /opt/lampp/htdocs/

    WEAK SESSION LOW

    • low
      low 的其实很简单,多发几个数据包,然后进行对比一下就知道了,

    cookie劫持
    session劫持

    sessionID 从0开始,每次访问一个页面之后,服务器就返回数据包加1

    https://www.jianshu.com/p/caeda6ee8964

    中等难度是时间戳加密,高等难度是md5加密
    但我们获取了cookie值的时候,我们就可以盗用别人的身份了。
    cookie值正确之后,我们就可以直接访问需要登录后的被攻击方的页面,进行系列操作。

    当用户登录后,在服务器就会创建一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带

    Sesion去访问。

    sessionID作为特定用户访问站点所需要的唯一内容。如果能够计算或轻易猜到该sessionID,则攻击者将可以轻易获取访问权

    限,无需录直接进入特定用户界面,进而进行其他操作。

    用户访问服务器的时候,在服务器端会创建一个新的会话(Session),会话中会保存用户的状态和相关信息,用于标识用户。

    服务器端维护所有在线用户的Session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。为了告诉服务器应该使

    用哪一个Session,浏览器需要把当前用户持有的SessionID告知服务器。用户拿到session id就会加密后保存到 cookies 上,

    之后只要cookies随着http请求发送服务器,服务器就知道你是谁了。SessionID一旦在生命周期内被窃取,就等同于账户失窃。

    Session利用的实质 :

    由于SessionID是用户登录之后才持有的唯一认证凭证,因此黑客不需要再攻击登陆过程(比如密码),就可以轻易获取访问权

    限,无需登录密码直接进入特定用户界面, 进而查找其他漏洞如XSS、文件上传等等。

    Session劫持 : 就是一种通过窃取用户SessionID,使用该SessionID登录进目标账户的攻击方法,此时攻击者实际上是使用

    了目标账户的有效Session。如果SessionID是保存在Cookie中的,则这种攻击可以称为Cookie劫持。SessionID还可以保存

    在URL中,作为一个请求的一个参数,但是这种方式的安全性难以经受考验。

    session and cookie 劫持 但是还是不懂怎么操作来攻击
    https://www.cnblogs.com/phpstudy2015-6/p/6776919.html

    使用Postman模拟HTTP请求
    https://blog.csdn.net/weixin_30730151/article/details/99138278?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3

    相关文章

      网友评论

          本文标题:DVWA

          本文链接:https://www.haomeiwen.com/subject/wwqtahtx.html