验证机制之暴力破解用户名密码

实验目的

通过本实验,掌握使用字典暴力破解绕过登录验证。

实验环境

实验原理

登录页面在设置用户名和密码的时候,没有遵循密码设置规则,借助字典利用穷举法将所有可能的用户名和密码一一尝试,进行蛮力攻击,最后暴力破解出用户名和密码,绕过验证机制。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/webug/pentest/test/b2e16da5985ee1be/index.html
image.png

2、随便输入用户名为:“root”,密码为“123456”提交,登陆失败
image.png
image.png

3、返回登陆页面,还是随便输入用户名为:“root”,密码为“123456”
image.png

4、打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

5、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

6、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

7、点击“登录”,提交输入的用户名和密码,Bp成功抓取数据包
image.png

8、右键,选择“Send to Intruder”,将数据包发送到暴破模块
image.png
image.png

9、将攻击模式设置为“Cluster bomb”
image.png

10、切换到“Payloads”,设置攻击载荷。设置攻击位置1的payload类型为”Simple list”,并加载用户名字典
image.png
image.png

11、设置攻击位置2的payload类型为”Simple list”,并加载密码字典
image.png
image.png

12、点击“Start attack”,开始暴力破解,暴破成功
image.png
image.png

实验总结

通过本实验,掌握使用字典暴力破解,对暴破的结果根据长度进行分析,长度值与其他不同的就是正确结果,从而绕过登录验证机制。

验证机制之绕过验证码前端验证

实验目的

通过本实验,掌握使用字典暴力破解绕过验证码在前端验证的逻辑,从而暴破出用户名密码登录。

实验环境

实验原理

登录页面在设置用户名和密码的时候,没有遵循密码设置规则,但是增加了验证码,需要输入验证码,而验证码的逻辑又放在前端,通过抓包发现后台不会对输入错误的验证码进行验证,在浏览器中,输入错误的验证码是有提示的。前端设置的验证码如同虚设,后端又不会对验证码进行验证。那么可以略过验证码,直接进行暴力破解就可以了,借助字典利用穷举法将所有可能的用户名和密码一一尝试,进行蛮力攻击,最后暴力破解出用户名和密码,绕过验证机制。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/pikachu/vul/burteforce/bf_client.php
image.png

2、随便输入用户名为:“root”,密码为“123456”以及随意验证码进行提交,弹框提示验证码输入错误
image.png

3、点击“确定”,还是随便输入用户名为:“root”,密码为“123456”以及正确验证码
image.png

4、打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

5、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

6、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

7、点击“Login”,提交输入的用户名、密码以及验证码,Bp成功抓取数据包(验证码输入错误时,无法抓取到数据包,只有验证码输入正确时才能抓到数据包,由此可以判断验证码的验证逻辑在前端)
image.png

8、右键,选择“Send to Intruder”以及“Send to Repeater”,分别将数据包发送到暴破模块和重发模块
image.png
image.png

9、在“Repeater”中对数据包修改验证码为任意,然后点击“Send”放包,查看响应包发现后台不会对输入错误的验证码进行验证,在浏览器中,输入错误的验证码是有提示的
image.png

10、切换到浏览器,右键选择“查看页面源代码”,浏览代码中发现验证码的验证逻辑是在客户端的实现规则
image.png
image.png

11、通过前端验证码的验证逻辑的代码可以发现Javascript会从0-9和26个大写字母中随机挑选5个作为验证码,然后用 validate() 去验证,并且每点一次验证码,就会调用 createCode() 改变验证码
image.png

12、前端设置的验证码如同虚设,后端不会对验证码进行验证。那么不用理会验证码,直接进行暴力破解。切换到BurpSuite的的“Intruder”模块
image.png

13、点击“Clear §”,清除所有Payload位置标志,重新选择“username”和“password”两个需要暴破的位置标志,点击“Add §”
image.png
image.png

14、将攻击模式设置为“Cluster bomb”
image.png

15、切换到“Payloads”,设置攻击载荷。设置攻击位置1的payload类型为”Simple list”,并加载用户名字典
image.png
image.png

16、设置攻击位置2的payload类型为”Simple list”,并加载密码字典
image.png
image.png

17、点击“Start attack”,开始暴力破解,暴破成功
image.png
image.png

实验总结

通过本实验,掌握在遇到登录页面增加有验证码验证,首先判断是前端验证还是后端验证,前端设置的验证码如同虚设,就可以略过验证码,直接使用字典暴力破解,对暴破的结果根据长度进行分析,长度值与其他不同的就是正确结果,从而绕过登录验证机制。

验证机制之绕过验证码服务端验证

实验目的

通过本实验,掌握使用字典暴力破解绕过验证码在前端验证的逻辑,从而暴破出用户名密码登录。

实验环境

实验原理

登录页面在设置用户名和密码的时候,没有遵循密码设置规则,但是增加了验证码,用来防止恶意注册、防止暴力破解;验证码需要判断验证的逻辑是放在前端还是服务端,服务端验证码常见问题:

1
2
3
4
1、验证码不生效,导致验证码的验证逻辑无效
2、验证码不过期,导致验证码不失效,可以长期使用
3、验证码设计太简单以及有规律,可以被预测、猜解
4、验证码校验不严格,验证逻辑出现问题

利用验证码的问题,进行验证码绕过,再借助字典利用穷举法将所有可能的用户名和密码一一尝试,进行蛮力攻击,最后暴力破解出用户名和密码,绕过验证机制。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/pikachu/vul/burteforce/bf_server.php
image.png

2、随便输入用户名为:“root”,密码为“123456”以及随意验证码进行提交,页面提示验证码输入错误
image.png
image.png

3、随便输入用户名为:“root”,密码为“123456”以及正确验证码进行提交,页面提示“username or password is not exists”
image.png
image.png

4、打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

5、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

6、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

7、随便输入用户名为:“root”,密码为“123456”以及随意验证码,点击“Login”,提交输入的用户名、密码以及验证码,Bp成功抓取数据包,说明后端对验证码是有验证的
image.png

8、点击“Drop”,丢弃数据包
image.png

9、随便输入用户名为:“root”,密码为“123456”以及正确验证码进行提交,重新抓包
image.png
image.png

10、右键,选择“Send to Intruder”以及“Send to Repeater”,分别将数据包发送到暴破模块和重发模块
image.png
image.png

11、在“Repeater”中点击“Send”,发送数据包,查看响应包,提示“username or password is not exists”
image.png

12、换个密码再发送一次数据包,查看响应包,依然提示“username or password is not exists”,正常来说应该提示验证码错误,说明验证码长期有效,可以直接暴力破解
image.png

13、切换到BurpSuite的的“Intruder”模块,点击“Clear §”,清除所有Payload位置标志,重新选择“username”和“password”两个需要暴破的位置标志,点击“Add §”
image.png
image.png

14、将攻击模式设置为“Cluster bomb”
image.png

15、切换到“Payloads”,设置攻击载荷。设置攻击位置1的payload类型为”Simple list”,并加载用户名字典
image.png
image.png

16、设置攻击位置2的payload类型为”Simple list”,并加载密码字典
image.png
image.png

17、点击“Start attack”,开始暴力破解,暴破成功
image.png
image.png

实验总结

通过本实验,掌握在遇到登录页面增加有验证码验证,首先判断是前端验证还是后端验证,前端设置的验证码如同虚设,就可以略过验证码,后端验证看验证码是否生效,不生效直接使用字典暴力破解,对暴破的结果根据长度进行分析,长度值与其他不同的就是正确结果,从而绕过登录验证机制。

验证机制之找回密码

实验目的

通过本实验,掌握利用密码重置过程中经常遇见的一些问题,绕过安全验证,从而重置密码。

实验环境

  • 操作机:Win10
    用户名:Administrator
    密码:Sangfor!7890
  • 靶机:Apache + PHP
  • 实验地址:http://ip/index.php

实验原理

在网站的忘记密码位置进行找回密码的过程中,可以利用密码重置过程中常见的一些问题绕过安全验证,从而实现重置密码。常见密码重置问题:

1
2
3
4
5
6
1、用户名枚举:网站反馈多余信息,可猜测用户信息
2、验码返回前端处理:可截获、修改
3、修改Request:用户名、手机号、邮箱、Cookie等信息可修改
4、修改Response:操作结果成功/失败可修改
5、暴力破解验证码:验证码长度有限,或验证码未设置可靠的失效时间
6、拼凑密码重置链接:重置密码链接有规可循

实验步骤

阶段一:管理员安装cms,搭建企业网站

1、登陆”Attack”操作机,打开浏览器,访问http://ip/index.php
image.png

2、根据提示,点击“点击运行安装向导”,安装cms
image.png

3、点击“我同意”,然后一直点击“下一步”
image.png
image.png

4、填写必要信息,数据库密码要填写“root”;数据库名任意设置,比如“zzcms”;管理员密码任意设置,比如“123456”
image.png

5、然后一直点击“下一步”,直至安装完成
image.png
image.png

6、点击“网站首页”,跳转至网站首页,至此企业网站搭建完成
image.png

阶段二:任意用户注册账号

7、点击右上角的“免费注册”,跳转到注册账号界面
image.png

8、填写相关信息,点击“提交”,注册账号成功
image.png
image.png

9、点击“安全退出”,退出登录
image.png

阶段三:攻击者重置用户密码

10、点击右上角的“请登录”,跳转登录账号界面
image.png

11、由于攻击者不知道账号密码,点击“找回密码”,进行尝试
image.png

12、输入任意用户名,提示“该用户名不存在”,利用网站反馈的多余信息,不断猜测用户名,直到正确为止
image.png
image.png

13、根据图片验证码中的结果填写,进行验证码验证,然后点击“下一步”,进入安全验证阶段
image.png
image.png

14、由于验证码会发送到用户的邮箱进行安全验证,而攻击者无法获取到验证码,无法进入下一步。尝试抓包,打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

15、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

16、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

17、随便输入验证码(不要点击获取验证码),点击“下一步”,提交输入的验证码,Bp成功抓取数据包
image.png
image.png

18、右键,选择“Do intercept”下的“Response to this request”,抓取响应数据包(即可以抓取数据包的响应包进行修改)
image.png

19、点击“Forward”,转发数据包,获取响应数据包
image.png

20、把响应数据包中的“no”改为“yes”,然后点击“Forward”,继续转发数据包
image.png

21、切换到浏览器,发现已经绕过安全验证,关闭浏览器代理,输入任意新密码即可,比如“sxf123”,点击“确定”即可
image.png
image.png

22、重置密码成功
image.png

23、点击“登录”,用修改的密码尝试登录,成功登录
image.png
image.png
image.png

实验总结

通过本实验,掌握在找回密码的过程中,可以利用密码重置的常见攻击方法进行尝试,枚举用户名、抓包修改数据包、暴力破解验证码、拼接重置密码连接等方法尝试绕过安全验证,从而重置密码,登录账户。

越权之水平越权

实验目的

通过本实验,掌握水平越权漏洞的原理、利用过程以及危害。

实验环境

实验原理

水平越权也叫横向越权,相同权限下不同的用户可以互相访问,比如A和B是相同权限下的用户,如果A能看到理论上只有B能看到的信息,或者A能执行理论上只有B能执行的操作,这就是水平越权。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/pikachu/vul/overpermission/op1/op1_login.php
image.png

2、由于水平越权需要相同权限下不同的用户可以互相访问,所以需要先使用账户登录。点击“点一下提示”,找到给出的用户名密码。
image.png

3、先使用lucy账户登录,登录成功后发现有“点击查看个人信息”的地方
image.png
image.png

4、点击之后,查看lucy的个人信息
image.png

5、发现查看lucy的个人信息的URL中参数username的值是用户名lucy;由此猜测该参数值是哪个用户名就回显哪个用户的信息,因此将username的值由lucy替换为lili,发现lucy用户信息的页面已经切换为Lili的用户信息,成功实现水平越权。
image.png

实验总结

通过本实验,掌握水平越权的漏洞原理,使用lucy账户登录,查看lucy用户的个人信息,通过修改username的值为其他用户名,实现查看其他用户的个人信息,成功水平越权,展现了水平越权漏洞的危害。

权限控制之垂直越权

实验目的

通过本实验,掌握利用垂直越权漏洞,抓包修改管理员的登录密码。

实验环境

实验原理

普通用户登录后正常逻辑只能看到自己的账户信息,通过抓包后修改管理员用户的登录密码,修改成功。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/webug/pentest/test/3
image.png

2、输入用户名为:“tom”,密码为“123456”提交,登陆成功
image.png

3、点击更改密码,跳转到修改密码页面,用户名显示在URL
image.png

4、随便输入密码全部为:“test”
image.png

5、打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

6、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

7、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

8、点击“更改密码”,提交输入的密码,Bp成功抓取数据包
image.png

9、将“username”更改为“admin”
image.png

10、点击“Forward”,转发数据包,切换到浏览器,密码更改成
image.png

11、点击“确定”,关闭浏览器代理
image.png

12、输入用户名为:“admin”,密码为:“test”,点击“submit”提交用户名和密码,登录成功
image.png

实验总结

通过本实验,掌握逻辑漏洞中的权限控制问题,通过登录普通用户抓包修改,成功修改管理员的登录密码,并且用管理员的用户名和密码登录成功。

越权之垂直越权

实验目的

通过本实验,掌握垂直越权漏洞的原理、利用过程以及危害。

实验环境

实验原理

垂直越权也叫纵向越权,使用权限低的用户可以访问到权限较高的用户。比如A用户权限比B低,如果A可以访问理论上只有B才能访问的资源,或者执行理论上B才能执行的操作,这就是垂直越权。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/pikachu/vul/overpermission/op2/op2_login.php#
image.png

2、由于垂直越权需要低权限用户访问高权限用户,所以需要先使用账户登录。点击“点一下提示”,找到给出的用户名密码。
image.png

3、提示中给了两个用户,一个是高权限的管理员用户,一个是普通用户。先使用高权限管理员admin登录
image.png
image.png

4、管理员admin用户可以查看用户列表、添加用户、删除用户等功能。点击“添加用户”,到添加用户界面,并填写添加用户的相关信息
image.png

5、打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

6、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

7、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

8、点击“创建”,抓取数据包,并将其发送至“Repeater”重复发包模块,然后丢弃该数据包
image.png
image.png

9、关闭代理,在登录界面使用低权限用户pikachu登录,该用户只有查看权限,然后再次打开代理
image.png
image.png

10、刷新页面,抓取数据包
image.png

11、复制低权限pikachu用户Cookie字段的PHPSESSID值到Repeater模块抓取的高权限admin用户添加用户的数据包中
image.png

12、点击“Send”,发送数据包,然后切换至浏览器关闭代理
image.png

13、在低权限用户pikachu登录的状态下,刷新查看用户的页面,发现用户添加成功,使用只有查看用户功能的低权限的Cookie成功执行了高权限才有的添加用户功能,实现了垂直越权。
image.png

实验总结

通过本实验,掌握垂直越权的漏洞原理,使用管理员admin账户登录,可以查看用户、添加用户、删除用户;在添加用户页面抓包,然后登录普通用户pikachu,将管理员用户的Cookie替换为普通用户的Cookie,添加用户成功,成功垂直越权,展现了垂直越权漏洞的危害。

支付逻辑之修改商品单价

实验目的

通过本实验,掌握支付流程中存在的业务逻辑层面的漏洞。

实验环境

实验原理

在系统的支付流程中由于服务器端没有对客户端请求数据中金额、单价、数量等敏感信息做校验,造成商家的经济损失,导致产生支付逻辑漏洞。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/webug/pentest/test/2/
image.png

2、用户名输入为:“tom”,密码输入为“123456”提交,登陆成功
image.png

3、打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

4、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

5、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

6、在对应的商品下选择购买的数量
image.png

7、点击“购买”按钮,提交数据,Bp成功抓取数据包
image.png

8、将数据包中的价格bill1和bill2修改为0
image.png

9、点击“Forward”,转发数据包,切换到浏览器,实现0元购买
image.png

实验总结

通过本实验,掌握支付流程中存在的业务逻辑层面的漏洞。在系统的支付流程中由于服务器端没有对客户端请求数据中单价做校验,造成“0元购”,导致产生支付逻辑漏洞。

支付逻辑之修改商品数量

实验目的

通过本实验,掌握支付流程中存在的业务逻辑层面的漏洞。

实验环境

实验原理

在系统的支付流程中由于服务器端没有对客户端请求数据中金额、单价、数量等敏感信息做校验,造成商家的经济损失,导致产生支付逻辑漏洞。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/webug/pentest/test/2/
image.png

2、用户名输入为:“tom”,密码输入为“123456”提交,登陆成功
image.png

3、打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

4、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

5、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

6、在对应的商品下选择购买的数量
image.png

7、点击“购买”按钮,提交数据,Bp成功抓取数据包
image.png

8、将数据包中的数量num1修改为负
image.png

9、点击“Forward”,转发数据包,切换到浏览器,实现0元购买
image.png

实验总结

通过本实验,掌握支付流程中存在的业务逻辑层面的漏洞。在系统的支付流程中由于服务器端没有对客户端请求数据中数量做校验,造成“0元购”,导致产生支付逻辑漏洞。

支付漏洞之修改商品编号

实验目的

通过本实验,掌握购物支付流程中存在的业务逻辑层面的漏洞。

实验环境

  • 操作机:Win10
    用户名:Administrator
    密码:Sangfor!7890
  • 靶机:Apache + PHP
  • 实验地址:http://ip/index.php

实验原理

支付漏洞一直以来就是高风险漏洞,对用户和企业的危害都很大。网上购物的整体流程为:搜索、挑选商品 -> 下单购买 -> 付款
->
发货。在系统的支付流程中,由于开发者在编写购物程序时,对客户端请求数据中金额、单价、数量、商品编号等敏感信息的逻辑处理不当,攻击者利用目标网站本身的逻辑问题,造成商家的经济损失,导致产生支付逻辑漏洞。

实验步骤

1、登陆”Attack”操作机,打开浏览器,访问http://ip/index.php
image.png

2、点击“登录”,跳转到登录界面。在购物之前先登录购物账号,用户名为“test”,密码为“123456”,登陆即可(也可以自己注册账号)
image.png
image.png

3、在分类侧点击“手机”,跳转到手机一类的商品,任意选择一款手机点击,查看该商品的id,比如苹果手机,商品id是54
image.png
image.png

4、回到首页,点击下方的苹果商品,可以看到该商品的id是42
image.png
image.png

5、打开桌面的的“Burp”文件夹,双击“BURP.cmd”启动Burp Suite抓包工具
image.png

6、切换到“Proxy”代理模块的“Options”,查看Bp的代理
image.png

7、切换到浏览器,选择火狐插件中的代理(配置浏览器的的代理),与Bp的代理一致
image.png

8、点击“立即购买”,开始抓包
image.png

9、将数据包中该商品的“id”修改为手机的商品id【54】
image.png

10、点击“Forward”,转发数据包。切换到浏览器,关闭代理。可以看到订单信息中,商品名称是手机,单价是苹果水果的单价。注意:在挖掘支付逻辑漏洞的时候一般支付方式为在线支付
image.png

11、点击“提交订单”,可以看到支付的金额已经是水果苹果的价格
image.png

12、点击左侧的“订单管理”,成功可以看到该订单
image.png

实验总结

掌握支付流程中存在的业务逻辑层面的漏洞。在系统的支付流程中由于服务器端没有对客户端请求数据中商品编号做校验,造成低价购买高价产品,导致产生支付逻辑漏洞。