安全性测试入门 (四):Session Hijacking 用户会话劫持的攻击和防御 (2)

安全性测试入门 (四):Session Hijacking 用户会话劫持的攻击和防御

Impossible防御

<?php $html = ""; if ($_SERVER['REQUEST_METHOD'] == "POST") { $cookie_value = sha1(mt_rand() . time() . "Impossible"); setcookie("dvwaSession", $cookie_value, time()+3600, "/vulnerabilities/weak_id/", $_SERVER['HTTP_HOST'], true, true); } ?>

使用随机数+时间戳+常量字符串+sha1加密。好吧,确实很难猜出来了,是不是impossible呢?唔。。。

4. 会话劫持的测试

事实上到此为止我们还不能全面讨论会话劫持的测试,因为还有很多种劫持的方法我们没有去了解。

不过呢,我们可以借这个机会来解释一下安全测试的大方向。

路是一步步走出来的,同样的道理,对于一个产品的防御机制则是一种典型的1+1>2的概念。

我在项目中间经常看到这种现象:由于现在的前端技术也比较成熟了,很多后端工程师就依赖于前端去完成数据校验工作,后端校验就省去了。

但是实际上任何产品的安全机制都应该是层层叠加的体系,任何单层的防御都不能确保产品的绝对安全

上面提到的前后端校验就是很好的例子:前端校验实在太容易绕过了,后端必须要做好二重校验,这就是个双保险的概念。

回到用户劫持攻击的测试,session标识颁发规则就是产品层叠防御机制中的其中一层。

测试人员可以通过解读这一规则来判断他的合理性。简单来说,如果你们的session标识规则,你能够想办法破解掉,不用想了报bug吧。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxwdj.html