寒假最终任务

DVWA题目:

1、Brute Force

①easy
先随便输入密码和账号使用burpside抓包进行爆破
在这里插入图片描述抓包之后转到intruder选择集束炸弹进行爆破。在这里插入图片描述最后得到的结果为:

账号:admin
密码:123

②media
源代码中通过了对密码和账户的查询增强了安全系数,之后通过sleep( 2 )使得输入密码错误时会休眠两秒,但操作上与easy无异
在这里插入图片描述③high

2、Command Injection

①easy
在这里插入图片描述
查看题目,我们得知题目要求我们ping一个命令,我们带入127.0.0.1的ip地址,例如:
在这里插入图片描述随即得到答案
②medium
难度升级之后,我们先查看源码:在这里插入图片描述
发现,过滤了”&&“和“;”,因此会使得很多命令被限制,但依旧很多可以参考的代码,我们依旧可以使用之前的代码·:在这里插入图片描述
③high
产看源码:
在这里插入图片描述
注意,此处的黑名单中设置了“| ”说明并不是彻底将“|“连接符禁用,而是漏过了" |".最终得到:
在这里插入图片描述

3、CSFR

①easy:
进入题目,我们看到题目的目标是让我们实现对于密码的修改,,首先看到要求输入一次密码和确认一次密码,输入两次不同时看到URL为:在这里插入图片描述
所以将两个一致即可看到修改密码成功
②media
当进入题目时,我们查看源码进行分析,可以得到media加上了对用户请求头的中的Referer字段进行验证。即用户的请求头中的Referer字段必须包含了服务器的名字。
所以在我们直接在Hackbar依据easy输入时会显示:
在这里插入图片描述所以我们需要通过burpside抓包进行添加Refere的操作,首先复制url信息到新的页面抓包:在这里插入图片描述在这里插入图片描述可以看到在进行这一系列操作之后显示了密码已修改
③high

4、File Inclusion

①easy
先查看源码,文件的要求是GET类型在这里插入图片描述我们分析可知他并未过滤任何文件,所以先建立一个文件包含<?php system('ipconfig');?>的内容或者其他内容,之后我们将?page通过这个输入文件地址,就可以通过漏洞见到内容
在这里插入图片描述在这里插入图片描述

②media
与简单难度比较,我们查看源码:
在这里插入图片描述可以看到,此时对于文件的输入形式进行可限制

③high
分析后台源代码,我们看到这个题目的所有输入必须是以“file*”的形式且不能有“include.php”。所以,我们用flie://来进行绕过即:(1.txt是我自己随便建的一个txt文件)

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file://E:\PHPstudy\phpstudy_pro\WWW\DVWA\1.txt
在这里插入图片描述
结果即为:在这里插入图片描述

5、File Upload

①easy

在这里插入图片描述

首先我们得知这个题目是针对文件上传的题目,所以,首先我们先写一个一句话木马:在这里插入图片描述
将文件带入之后,我们解决了easy的难度。
②media
分析源码,我们发现,这个文件的类型接受的是.jpg格式或者是.png格式,所以,我们只需将文件的后缀修改一下即可
在这里插入图片描述
即:
在这里插入图片描述
③high
直接查看源码,我们发现网页只接受.jpe等类型的文件,所以我们写一个一句话木马,随后尝试上传:
在这里插入图片描述结果显示为:
在这里插入图片描述得知直接上传的方式不行,并且源码中getimagesize函数更是限制了上传文件的文件头必须为图像类型,所以我们只能借助工具上传

6、Insecure CAPTCHA

①easy
首先查看代码
在这里插入图片描述发现这个程序中是分两种,当step输入不同会带入不同的代码运行,所以我们需要用抓包从而来修改上传的step。
zhuabaoshi抓包后我们看到此时step=1将我们的step换位2即可。
②media
当查看源码时,我们发现,step2中包含了一个新的判断条件:
在这里插入图片描述
就是判断是否passed_captcha通过,所以我们需要用burpside抓包来修改:
在这里插入图片描述
将step=2,并且添加passed_capecha=ture,从而实现绕过。

在这里插入图片描述

③high

7、SQL Injection

①easy
首先判断是否存在SQL注入漏洞:
在这里插入图片描述
随后输入 1 and 1=2:
在这里插入图片描述
在这里插入图片描述当我们注入“1’”时发现:在这里插入图片描述则可以证明是存在注入点的,并且是以单引号闭合的。
随后判断数列:
在这里插入图片描述
在这里插入图片描述
说明数列数位2.
现在我们开始尝试注入;在这里插入图片描述看到两个显回之后获取数据库中的表:
在这里插入图片描述随后获取表中的字段名:
在这里插入图片描述获取字段:
在这里插入图片描述
最后输入筛选

1’ union select user, password from users#

即可
②media
中级的难度有所提高,限制了我们的输入,我们用burpside抓包然后发送到repater,找到id的输入点,进行修改,首先先查看列数:
在这里插入图片描述得知列数为3;
之后查看列表名:
在这里插入图片描述随后查表即可:

id=1 union select user, password from users#

③high
在这里插入图片描述当我们查列表时,发现此时出现问题,尝试其他:
在这里插入图片描述判断数列数为2;
接着查表名:
在这里插入图片描述在这里插入图片描述最后即可得到结果,用1’ union select user,password from users#爆破即可

8、SQL Injection (Blind)

①easy在这里插入图片描述
在这里插入图片描述
当我们尝试输入1 与1‘的时候,我们会发现发生错误所以我们只能依据这个来进行判断,所以开始操作;

输入1时,我们得到结果为真
之后输入1’得到MISSING的结果
随后输入1 and 1=1和1 and 1=2得到的结果均为真
输入1’ and 1=1 #显示存在
输入1’ and 1=2 #不存在

因此可得这个题目存在SQL注入漏洞
之后我们要判断数据库长度:
当我们输入

1’ adn length(database())=4#

时,我们看到的结果为存在,说明此时的数据库长度为4;
之后确定数据库名:
通过1’ and ascii(substr(databse(),1,1))来确定数据库的名称

1’ and ascii(substr(databse(),1,1))>95
1’ and ascii(substr(databse(),1,1))<122

多次重复从而得到数据库的名称

1’ and (select count (table_name) from information_schema.tables where table_schema=database())=x #

当我们切换x的值,最后当x=2时得到值;
之后我们确定表的长度:

1’ and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=x #(x为大于1的整数)

当x=9时,得到User ID exists in the database.
之后继续:
②media
在这里插入图片描述与之前的SQL注入一致,先用burpside抓包,操作与easy难度下一致在这里插入图片描述

③high
highigh难度也是一致从另一个界面中进行注入;

9、Weak Session IDs

①easy
先查看源码,分析代码,我们得知:

  1. 当后台收得到的请求时POST请求时会进行判断是否在last_session_id之中

  2. 如果存在那么就使得它=0,之后会从0开始执行++的操作

  3. 最后通过setcookie()函数创建一个叫dvwaSession中的内容输入到cookie_value这个变量中

    所以我们需要查看页面的此时的cookie
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    获得此时的cookie之后从加载页面:
    在这里插入图片描述使用hackbar来进行访问登录成功
    ②media
    查看源码在这里插入图片描述我们看到此时的cookie是根据时间来确定的,我们首先用burpside抓包查看cookie
    抓包到Repeater之后,我们send查看此时的cookie:在这里插入图片描述

在这里插入图片描述复制下来之后我们转到时间戳转换工具,得到:
在这里插入图片描述

③high
老样子,先看源代码有什么改动的地方:
在这里插入图片描述首先,还是先通过

$_SERVER[‘REQUEST_METHOD’]

判断是否为POST请求,
之后,用

if (!isset ($_SESSION[‘last_session_id_high’]))

来判断是否设置了$_SESSION[‘last_session_id_high’]的值,如果没有则将他设置为0
之后,用“++”的操作进行累加,把结果通过MD5加密之后进行赋值给cookie_value,最后用setcookie()函数来设置一个cookie。且过期时间为一个小时,路径为
“/vulnerabilities/weak_id/”,域名为 $_SERVER[‘HTTP_HOST’] 的值,禁用安全标志和 HTTPOnly 标志。
那么,我们先来抓包获取cookie:在这里插入图片描述截取dvwaSession进行md5解密:
在这里插入图片描述

10、XSS (DOM)

①easy
因为easy难度下没有对输入的内容进行限制在这里插入图片描述先尝试点击select按钮我们得到上传的defualt的值为English所以我们可以通过这个进行编辑XSS代码:
在这里插入图片描述
随即得到结果
②media
在这里插入图片描述当我们查看源码时,我们发现此时"<script"被禁止,所以我们不能用<script>,尝试使用

<img src="1" onerror="alert(1)">

发现结果并没有显示出
在这里插入图片描述查看网页源码:
在这里插入图片描述
发现虽然插入了代码,但是没有在option之中所以无法起作用,所以直接构造<option>语句直接插入:

http://127.0.0.1/DVWA/vulnerabilities/xss_d/?default=><option><img  str="1" οnerrοr=alert(666)>

但是此时只有">"被插入,其他部分任然没有在这里插入图片描述在这里插入图片描述最后插入成功在这里插入图片描述

③high
在这里插入图片描述
先看代码我们发现此时只允许除了English之外的其他的语言通过,我们可以先之前一样将语句插入

http://127.0.0.1/DVWA/vulnerabilities/xss_d/?default=English#%3C/option%3E%3C/select%3E%3CBODY%20ONLOAD=alert(document.cookie)%3E

可以看到我们在English之后添加了#,在url中#后边的内容不会发送到服务端,从而可以实现绕过。
在这里插入图片描述

11、XSS (Reflected)

①easy在这里插入图片描述查看源码,发现时$_GTE类型的,所以我们可以直接通过输入框进行输入然后就会运行:
在这里插入图片描述
②media
在这里插入图片描述查看源码,我们发现<script>被过滤掉了,所以我们尝试事件绕过:
即:输入一段代码使得插入一个链接从而使得JS代码可以运行从而达到效果:

<a href = 'javascript:alert(666)'>click</a>

在这里插入图片描述

③high
查看源码,我们发现:“<”、“s”、“c”、“r”、“i”、“p”、"t"均被限制所以我们不能够出现这几个字母与字符
在这里插入图片描述
我们采用<img>的方式进行插入,使得最后带入成功。

<img src=1 οnerrοr=alert(666)>

12、XSS (Stored)

①easy
在这里插入图片描述发现题目中没有对于输入内容的限制,所以可以构造代码:

<script>alert=("666")</script>

在这里插入图片描述

②media
在这里插入图片描述查看源代码,我们发现,此时的题目过滤了<script>所以我们不能直接使用所以我们需要通过burpside抓包来修改;
在输入name和message之后从burpside抓包,将name修改为:<sc<script>ript>alert(/name/)</script>
从而绕过
在这里插入图片描述
③high
在这里插入图片描述查看源码,我们发现此次的限制相较于之前更加严苛,但是忽略了img、iframe等其他标签,所以我们还是可以像上一道题一样,抓包之后进行改包:
在这里插入图片描述最终得到结果

13、CSP Bypass

①easy
对于这类题目我们需要借助其他的网页来实现注入:
在这里插入图片描述创建一个包含JS代码并且可以运行的网页:
在这里插入图片描述在这里插入图片描述复制网页代码:
在这里插入图片描述
从而实现攻击
②media
查看源码,我们注意到注释的东西正是可以直接用的代码,我们尝试输入:
在这里插入图片描述输入后,我们随即得到了:
在这里插入图片描述

14、JavaScript

①easy
进入界面,我们首先尝试输入提示的success,发现我们得到的结果为错误,之后我们尝试从编辑器中查看源码:
在这里插入图片描述但是发现源码进行过加密,利用开发者工具进行调试,发现即使发送参数是 success 在传到 generate_token 函数中时 phrase 还是变成了 ChangeMe
在这里插入图片描述随后我们只能调用 JS 加密函数获得正确 token:

在这里插入图片描述随即用burpside抓包通过修改token来实现:
在这里插入图片描述
②media
查看源码,我们发现输入的规格为:
在这里插入图片描述
所以我们加密的规格是:
在这里插入图片描述
当我们发现,我们不论输入什么都会变为:
在这里插入图片描述因此我们需要将获取到的真正的token从而来使得结果正确:
在这里插入图片描述

③high
查看源代码:
在这里插入图片描述在这里插入图片描述解码后,我们来查看源码:
在这里插入图片描述从中我们看到有三个三种函数我们调用,我们调用函数来生成token:
但真正有用的是token_part_1和token_part_2
js中用来3个函数来计算token分别为:
1、 token_part_2()传入参数字符串’YY’和token值拼接并调用sha256
2、 token_part_3()将token值和字符串’ZZ’拼接并调用sha256()加密,从而得到最终的token;
目前最重要的是搞清楚他们执行的顺序
1、 首先将phrase 的值清空document.getElementById(“phrase”).value = “”;
2、由于setTimeout函数有300毫秒延时,所以先执行了token_part_1(“ABCD”, 44)
3、在执行2.然后再执行了 token_part_2(“XX”)
4、token_part_3被添加在提交按钮的click事件上,也就是点提交会触发执行最后执行所以最后因该是:
所以争取的执行步骤应该是:在输入框输入 success 后,再到控制台输入token_part_1(“ABCD”, 44)和token_part_2(“XX”)这两个函数,最后点击按钮执行token_part_3();

15、Authorisation Bypass

①easy
我们查看源码:
在这里插入图片描述
发现并没有限制,我们尝试直接访问/vulnerabilities/authbypass/,尝试访问,可以访问成功。
②media
③high

16、Open HTTP Redirect

①easy
首先查看源码:
在这里插入图片描述
我们分析可知,题目是可以通过GET到redirect的内容从而进行跳转到相关地址,也就是规定了输入的内容,而输入成其他的内容则会跳转至500报错
所以我们可以输入:
?redirect=跳转网页URL

?redirect=https://blog.csdn.net/stronelu?spm=1010.2135.3001.5421

②media
我们见到,http和https均被过滤,因此想要跳转至其他页面,我们必须单独重新单独建立一个文件,将文件地址导入到redirect中。
在这里插入图片描述将文件上传之后,通过访问文件即可

③high
一样首先通过redirect输入,之后查看是否包含了文件info.php并使用strpos()来检查,随后用header定向,最后跳转。
在这里插入图片描述由代码审计得,在构造参数时是指包含字符串info.php即可
例如:

?redirect=https//www.baidu.com/?已定义参数=info.php

  • 41
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值