DVWA靶场(十一、Weak Session IDs)

一、Weak Session IDs介绍

1.1、也叫弱会话 IDS,当用户登录后,在服务器就会创建一个会话(session),叫做会话控制,接下来访问页面的时候就不用登录,只需要携带session去访问。用户访问服务器,服务器端会创建一个新的会话,会话中保存用户的状态和相关信息,用来表示用户。服务器端维护所有在线用户的Session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。为了告诉服务器应该使用哪一个Session,浏览器需要把当前用户持有的SessionID告知服务器。用户拿到session id就会加密后保存到 cookies 上,之后只要cookies随着http请求发送服务器,服务器就知道你是谁了。SessionID一旦在生命周期内被窃取,就等同于账户失窃。

1.2、Session利用的实质 :
由于SessionID是用户登录之后才持有的唯一认证凭证,因此黑客不需要再攻击登陆过程(比如密码),就可以轻易获取访问权限,无需登录密码直接进入特定用户界面, 进而查找其他漏洞如XSS、文件上传等等。

1.3、Session劫持 : 就是一种通过窃取用户SessionID,使用该SessionID登录进目标账户的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。如果SessionID是保存在Cookie中的,则这种攻击可以称为Cookie劫持。SessionID还可以保存在URL中,作为一个请求的一个参数,但是这种方式的安全性难以经受考验。

二、Weak Session IDs(low)

1.1、low级别没有设置任何过滤,这里我们直接brup抓包可以看到,dvwaSession=1; lang=zh-cn; theme=default; PHPSESSID=o6rjrdu6dsqjofnm2v9f735s56; security=low而每次重放一次,session都会+1

1.2、这里我们重新打开一个空白的网页,通过HackBar提交url和Cookies,为验证有效性,清除一下浏览器的cookie值,提交后发现直接登录dvwa,绕过密码验证

二、Weak Session IDs(medium)

2.1、修改级别后我们发现session时基于时间戳生成的,关于时间戳这里不做过多介绍,时间戳可以直接通过转换器生成

直接把生成的时间戳替换掉之前的时间戳,看看能不能直接登录

可以看到直接无需密码登录成功

三、Weak Session IDs(high)

3.1、high级别使用了PHP setcookie()函数,来设置cookie:

3.2、实际操作high级别的时候出了点问题,每次Generate发现抓的包都是同样的PHPSESSID,看了别人的文章,这里时通过MD5加密的,然后进行MD5解密,从0开始进行累加猜测PHPSESSID

因为我这里的PHPSESSID一直保持不变,直接通过这个进行访问

四、Weak Session IDs(impossible)

$cookie_value采用随机数+时间戳+固定字符串"Impossible",再进行sha1运算,完全不能猜测到dvwaSession的值。

原文地址:https://www.cnblogs.com/tonywell/p/14040156.html