web实验

2022-03-17 18:32:58 浏览数 (1)

弱口令&&XSS初始

Burt Force(暴力破解漏洞)

Burte Force(暴力破解)概述 “暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。 理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括: 1.是否要求用户设置复杂的密码; 2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp; 3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等); 4.是否采用了双因素认证; ...等等。 千万不要小看暴力破解漏洞,往往这种简单粗暴的攻击方式带来的效果是超出预期的!

你可以通过“BurteForce”对应的测试栏目,来进一步的了解该漏洞。

从来没有哪个时代的黑客像今天一样热衷于猜解密码 ---奥斯特洛夫斯基

基于表单的暴力破解

登陆抓包,放到 Intruder模块

将账号&&密码字段 设置变量进行爆破 选择 狙击手 设置 Paylod

点击 Start attack开始爆破

爆破完成后,对长度进行排序,可看到有几个返回包的长度不一致,length长度为35035、payload为123456的密码返回包中,发现login success登录成功字样,说明使用账号密码admin/123456即可登录成功,成功对该登录系统进行爆破。

验证码绕过(On Server)

扫到后台,发现系统后台登录处带有验证码。

服务端生成验证码,刷新网页验证码刷新(如果后台验证码刷新了那么上一次的验证吗就无效了)。

抓包后,发现验证码参数,

经测试直接放入Intruder模块爆破即可,不要在 Proxy->Intercept模块放包后刷新页面,因为刷新页面后后台的验证码也会随之刷新,从而使上一次验证码失效,导致爆破不了。

返回包中,返回了login success字样,成功爆破到密码。admin/123456

验证码绕过(On Client)

基于客户端校验

在靶机上输入账号密码(随便输)验证码正确就行

抓取登录的请求包。

删除数据包中的验证码或者不用管它(相当于一个摆设)直接爆破就行。

发现返回包包含login success 说明暴力破解成功

不删除验证码也可以抓包爆破。(但是在前端登录的时候就会校验验证码)

Token防爆破?

token是计算机术语:令牌,令牌是一种能够控制站点占有媒体的特殊帧,以区别数据帧及其他控制帧。token其实说的更通俗点可以叫暗号,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。基于 Token 的身份验证方法

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

1.客户端使用用户名跟密码请求登录

2.服务端收到请求,去验证用户名与密码

3.验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端

4.客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里

5.客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

6.服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

经过测试发现此题的Token根本没用,删除token参数(或者不用管)即可直接爆破。(删除不能爆破,不知道为啥 求师傅解惑)

XSS跨站脚本攻击(Cross-Site Scripting)

XSS(跨站脚本)概述 Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型: 1.反射性XSS; 2.存储型XSS; 3.DOM型XSS;

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。 XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理: 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入; 输出转义:根据输出点的位置对输出到前端的内容进行适当转义; 你可以通过“Cross-Site Scripting”对应的测试栏目,来进一步的了解该漏洞。

反射型XSS(get)

输入框长这样

首先输入 <script>alert('1')</script>发现前端限制输入长度了。

f12大法审查元素,修改一下限制的长度即可

使用Payload <script>alert("1")</script>非作者预期的过滤方法非预期的过滤方法,发现并不会弹框。

测试后失败,审查元素查看源码,发现alert参数值被加干扰了。"会将双引号这类特殊字符变成文本字符串,使原来我们输入的payload无法被正确识别。

沉思许久也没有找到原因,通过网络查阅,造成原因可能是由于php环境版本造成的,部分题目对双引号和单引号进行转义过滤。

这里要讲一下,alert参数是可以连接字符串的,如果不加/或者单引号双引号,会被当做变量处理,如果变量有值则会弹出参数值,如果没有则不会弹窗。而后接数字就可以直接弹出。所以alert参数后接字母需要加/、单引号、双引号,后接数字直接填写。

尝试使用 <script>alert(/1/)</script>

可以执行,尝试使用 <script>alert(1)</script>

补充一点:

GET方式的XSS 还能通过URL进行测试 如图:

反射型XSS(post)

admin/123456登录之后,使用Payload进行测试,发现语句被转义过滤了。情况和上一关相同。(不同在于不能URL进行测试,智能在输入框插入Payload)

使用Payload <script>alert(/1/)</script> 发现Payload被执行

使用 <script>alert(1)</script> 一样可以触发XSS

存储型XSS

本题目输入框中的内容提交后会存储在数据库中,比前两种漏洞危害性更大。 提交payload后页面上会对它进行加载,然后每次打开该页面就会执行。

这一题也是会“/”转义 单、双引号

使用Payload <script>alert(/1/)</script>进行测试

成功触发Payload

使用Payload <img sec=javascript.:alert(1)>也能触发

DOM型XSS

0 人点赞