提示信息利用

输入用户名和密码

如果用户名存在密码错误会提示 ”密码不正确“

如果用户名不存在那么就会提示 ”用户不正确“

我们可以猜测网站用户名之后固定用户名进行密码爆破

session固定攻击

  • Session 是一种记录服务器和客户端会话状态的机制,使服务端有状态化,可以记录会话信息。而 Token 是令牌访问资源接口(API)时所需要的资源凭证。Token使服务端无状态化,不会存储会话信息。
  • session 是另一种记录服务器和客户端会话状态的机制
  • session 是基于 cookie 实现的,session 存储在服务器端,sessionId 会被存储到客户端的cookie 中

sessionid 是包含在 cookie 里的。意思就是,sessionid 是存储在cookie里的,所以在客户端。具体过程是客户端第一次请求,服务器返回请求并给出 cookie,其中包含 sessionid ,随后客户端第二次带着 cookie 和 sessionid 请求服务器,服务器根据 sessionid 找到存储的 session 数据并返回。

会话固定(Session fixation), 是一种诱骗受害者使用攻击者指定的会话标识(SessionID) 的攻击手段。是利用服务器的 session 不变机制, 借他人之手获得认证和授权,然后冒充他人,就会发生认证问题和会话固定攻击。可能导致部分甚至全部导致账户遭受攻击。一旦成功,攻击者能执行受害用户的任何操作,因此特权账户是常见的攻击对象。

我对此理解的一个例子是:攻击者首先在未登录状态下访问网站得到 sessionid,然后把带有 sessionid 的链接发给受害者,受害者点击链接并登录,而由于 sessionid 是不变的,攻击者就可以用这个 sessionid 来登录,获取受害者的页面。更形象一点就是,我在网吧上号,然而忘了取消记住密码,然后我号就没了。

检测漏洞方法也很简单,登录网站前后查看 sessionid 是否有变化即可

实战:

然后构造钓鱼网页,发送给受害者

<html>
<body> 
               //目标网站url 
<form action="http://ab9c9564.lxctf.net/" method="post">

    <input type="hidden" name="session_id" value="a1bsj2lbbfgubvreqinfrooqa6">
 //sessionid值
    <input type="submit">

</form>

</body>
</html>

身份转变,我们现在是受害者,收到钓鱼网页直接点击,此时发现 sessionid 值确实是攻击者的 sessionid

而此时攻击者已经达成目的了。他不需要用户的账号密码,直接访问后台登录页面即可登陆上用户的账号来干坏事。

未授权cookie

区别 ● 数据存放位置不同:Session数据是存在服务器中的,cookie数据存放在客服端当中; ● 安全程度不同:cookie放在客户端中并不安全,session放在服务器中,相对安全; ● 性能使用程度不同:session放在服务器上,访问增多会占用服务器的性能;考虑到减轻服务器性能方面,应使用cookie。

JYmusic会话劫持

首先注册一个账号并登录

随便在一首歌的评论区,可以看见前端对用户评论内容是没有任何过滤的

可以利用 xss 漏洞,输入 LBWNB"><script>alert(document.cookie)</script><span style="

可以看出弹出 cookie 了,但是是我们自己的,我们要获取管理员的。此时攻击已经完成了,坐等管理员上钩查看我们的评论。

受害者管理员被迫上线

攻击者心满意足,回到自己的账户,把 sessionid 值改成管理员的

token绕过

token 译为令牌,是用户身份的验证方式 最简单的token组成: uid (用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名)

token是开发定义的,session是http协议规定的; token不一定存储,session存在服务器中; token可以跨域,session不可以跨域(cookie也是),它是与域名绑定的。

  • 每一次请求都需要携带 token,需要把 token 放到 HTTP 的 Header 里
  • 基于 token 的用户认证是一种服务端无状态的认证方式,服务端不用存放 token 数据。用解析 token 的计算时间换取 session 的存储空间,从而减轻服务器的压力,减少频繁的查询数据库

登录凭证缺乏

未进行登陆凭证验证

有些业务的接口,因为缺少了对用户的登陆凭证的较验或者是验证存在缺陷,导致黑客可以未经授权访问这些敏感信息甚至是越权操

作。

后台页面访问

某电商后台主页面,直接在管理员web 路径后面输入main.php 之类的即可进入

仔细看,就可以找到规律,他就是固定0031003+数字+003+数字+003+数字,其实需要穷举的就是13位左右,如果能够访问,会泄露大量的用户个人资料

验证码绕过

通常来说,验证码机制是后端生成-----网页----客户端输入-----后端检验-----返回网页

前端状态值绕过

后端生成验证码之后,客服端输入后,前端检验才把返回结果给后端

那么我们可以拦截前端检验后的结果,比如说验证码的状态,把N(未通过)改为Y(通过),

再返回给后端,来绕过验证码

回包的N改为Y,试试前端绕过验证码

伪验证码未验证直接返回

这种情况少,就是网站向手机发送验证码之后,直接返回了验证码,这是伪验证码,机制的错误

点击获取验证码时,直接在返回包中返回验证码,通过抓包的来观察 reponse 包

在发送时候拦截回报,然后发送

客户端验证机制

通常来说,验证码机制是后端生成-----网页----客户端输入-----后端检验-----返回网页

但是有的网站喜欢直接前端生成,前端校验,不经过后端的认证。

这种的特征是填写验证码,抓包抓不到数据包。

验证码复用

密码重置绕过