逻辑漏洞测试靶场实验
任务一:
突破功能限制漏洞,要求突破查询按钮disabled限制,获取编号:110010的查询内容(弹框中的flag)
任务二:用户信息泄露漏洞,通过回显信息,以暴力破解法方式猜测系统中存在的两个用户名(提示:用户名以u开头),并暴力破解这两个用户对应的密码)
任务三:越权漏洞,通过上一步破解的用户名密码登录,利用越权漏洞获取admin和admin1的个人信息。
任务四:遍历漏洞。一直当前系统中存在一个学号为:20190504035XA01.利用遍历漏洞获取其他学号对应的成绩(不少于5条)
任务五:暴力破解攻击。获取系统中另一个六位数字编号对应弹框的flag内容。
任务一:
Step1:搭建环境
docker-compose build
docker-compose up -d
docker ps
Step2:输入110010,很明显查询按钮按不了
Step2:我们去查看一下源码,发现查询按钮部分有一个disabled,我们将disabled改成abled就可以执行了。
enabled = “enabled”
Step3:用web tools里面的inspector,然后把disabled=“disabled”修改为enabled=“enabled”,发现按键可以按下,即为成功。
Step4:flag出来了,是
flag{byp4ss1s_ez}
任务二:
step1:提示了是暴力破解,并且是u开头,我们先试一下u开头的,看回显是什么。(因为u,想到了user,直接试了user)。当我们输入user的时候,回显是密码不正确。说明我们的用户名输入正确了。因为如果输入u,显示的是用户名不正确。
u
user
Step2:破出了一个用户名,user,然后我们猜测应该另外一个是user后面加数字也不会差特别多,我直接就试了user1,然后直接试出来了。另外一个用户名就是user1.
user1
Step3:然后就是破解密码,这个是要求我暴力破解。我先猜123456,第一个用户user不对,猜user1的时候猜出来了(我真会猜emmm)。所以我们得到user1的密码是123456。
123456
Step4:另外一个自己猜的话没猜出来,所以我们选择用工具来爆破,这里使用的是burpsuite,首先抓包
Step5:然后send to intruder,然后选择sniper,然后选择payloads,然后导入字典(这里是自己从网上找的一个弱密码字典)
Step6:然后开始攻击,查看长度888888的长度是2315和其他的完全不一样长,所以我们找到密码了,user密码888888.
888888
任务三:
step1:先抓个包看看有什么参数。发现是post方式传递用户名和密码。然后在cookie里面看到了uid,然后后面带一块参数,然后右边的框解密发现是base64编码,解码是user,我们尝试改成admin
YWRtaW4=
step2:修改一些参数
Step3:失败了,后来仔细看了返回的包,然后我看到set-cookie一直是user1,就算修改了,还是user1,这让我很奇怪。
Step4:然后我去用了edit the cookie,我发现,我改了以后如果我不使用锁定,他会自己把我改的又改回来。所以我用edit the cookie把我改了进行了锁定(把那个user1的地方改成了admin的base64加密和url编码)。然后得到了admin的个人信息。
YWRtaW4=
Step5:同理,我们将admin1进行base64编码后再进行url编码。然后得到admin1的个人信息。(这个想法主要是基于,最开始进行抓包然后修改成admin的时候编码啥的都做了,然后发送,应该是要变了的,但是cookie就是不变,然后想起来我有一个直接edit the cookie的插件,然后我怕失败,特意锁定了,然后结果成功了,虽然我也不知道为什么bp会失败)。
YWRtaW4x
任务四:
Step1:先查询一条之后,仔细查看这个学号的信息
Step2:我们选择用burpsuite抓包之后一个一个遍历,send to intruder,然后选择载荷的位置,然后设置载荷的内容,设置为数字,从00到99,一次加1,数字的位数是2位。
Step3:开始攻击之后,得到的结果里面,因为已知01的长度,然后只筛选和01的长度一样的就可以得到有02。目前只得到一条,这时候发现,payload应该在多个地方,我们需要设置多个载荷。
Step4:在仔细看了一下啊,发现应该是年月日身份证后四位一个大写字母带两位数字,应该是,感觉有点难加说真正。我加了三个攻击载荷,但是感觉爆出来的可能性不高。后面老师说了爆破点,直接设置.(因为用的虚拟机,才4核根本跑不动,直接去数据库看的结果,然后设置的范围)
Step5:最后跑出来的一些长度2345,2344的就是我们要的。
任务五:
step1:按照任务一一样修改,然后抓个包
Step2:设置攻击载荷(看了结果设置的直接从后面几位开始了,本人还不会写python脚本)
Step3:开始攻击,明显发现,735142的长度大很多。
Step4:输入735142,修改还是按照任务一一样修改enabled。然后查询,得到flag。
flag{d1ct_1s_v3ry_1mp0rt4nt}