用户访问服务器的时候,一般服务器都会分配一个身份证 session id 给用户,用于标识。用户拿到 session id 后就会保存到 cookies 上,之后只要拿着 cookies 再访问服务器,服务器就知道你是谁了。
但是 session id 过于简单就会容易被人伪造。根本都不需要知道用户的密码就能访问,用户服务器的内容了。
下面就去看看一些不太合理的 sessionId 创建方式(这部分有点傻,正常人都不会这样设计

页面也比较简单的,点击 generate 就会生成一个 session Id。

初级

生成的策略是很简单的。

就在 cookies 上 dvwaSessionId 上 +1s,这种是肯定不行的。太容易被人伪造

再看看代码

<?php $html = ""; if ($_SERVER['REQUEST_METHOD'] == "POST") { if (!isset ($_SESSION['last_session_id'])) { $_SESSION['last_session_id'] = 0; } $_SESSION['last_session_id']++; $cookie_value = $_SESSION['last_session_id']; setcookie("dvwaSession", $cookie_value);
}
?> 

如果用户 SESSION中的 last_session_id 不存在就设为 0,这样 dvwaSession 的冲突也太多了吧,都已经不是唯一了。

中级

第二种明显就是时间戳了。

依然是比较容易猜出来了
代码如下


<?php $html = ""; if ($_SERVER['REQUEST_METHOD'] == "POST") { $cookie_value = time(); setcookie("dvwaSession", $cookie_value);
}
?> 

高级

看起来很高级,应该是 md5 处理了一下。

于是我在 https://www.cmd5.com/ 这个网站,md5 解密了一下。

。。。

再发一次请求。。。

也就是说跟初级是一样的策略,只是换汤不换药,
后台代码是这样的

<?php $html = ""; if ($_SERVER['REQUEST_METHOD'] == "POST") { if (!isset ($_SESSION['last_session_id_high'])) { $_SESSION['last_session_id_high'] = 0; } $_SESSION['last_session_id_high']++; $cookie_value = md5($_SESSION['last_session_id_high']); setcookie("dvwaSession", $cookie_value, time()+3600, "/vulnerabilities/weak_id/", $_SERVER['HTTP_HOST'], false, false);
} ?> 

不可能

不可能级别使用随机数+时间戳+固定字符串("Impossible")进行 sha1 运算,作为 session Id,完全就不能猜测到。

<?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);
}
?> 

也行吧,可以作为其中一种生成 session Id 的策略。

而 tomcat 的 session id 值生成的策略,是一个随机数+时间+ jvm 的id值(jvm的id值会根据服务器的硬件信息计算得来),如果出现冲突就会再生成一个。

转载于:https://www.cnblogs.com/jojo-feed/p/10174011.html

DVWA 黑客攻防演练(七)Weak Session IDs相关推荐

  1. DVWA指点迷津-Weak Session IDs

    Weak Seession IDs Session介绍 当用户完成登录操作后,服务器端需要记录用户的状态,而形成一个新的会话(Session),一般会保存在Cookie中.用户保持在线的状态时,就会保 ...

  2. PHP代码审计DVWA[Weak Session IDs(弱会话IDS)

    Weak Session IDs(弱会话IDS) 靶场搭建推荐蓝易云服务器

  3. 【Web安全】Weak Session IDs (弱会话IDs)-burp进行Cookie劫持

    文章目录 1 Weak Session IDs(弱会话IDs) 2 DVWA-low 3 medium级别 4 high级别 1 Weak Session IDs(弱会话IDs) 0x01 何为Wea ...

  4. DVWA 黑客攻防实战(十五) 绕过内容安全策略 Content Security Policy (CSP) Bypass

    看到标题,是否有点疑惑 CPS 是什么东东.简单介绍一下就是浏览器的安全策略,如果 标签,或者是服务器中返回 HTTP 头中有 Content-Security-Policy 标签 ,浏览器会根据标签 ...

  5. 网络黑客攻防学习平台之基础关第七题

    网络黑客攻防学习平台之基础关第七题: key究竟在哪里呢? 上一次小明同学轻松找到了key,感觉这么简单的题目多无聊,于是有了找key的加强版,那么key这次会藏在哪里呢? 通关地址:http://l ...

  6. 全程带阻:记一次授权网络攻防演练(下)

    完整攻击链大概包括信息搜集.漏洞利用.建立据点.权限提升.权限维持.横向移动.痕迹清除等七步,虽然这个站点只经历了前四步,但也具有较强的代表性,组合利用漏洞形成攻击链,拿下管理权限. 前情提要:全程带 ...

  7. 【攻防演练】蓝方值守阶段经验技巧

    随着国家对网络安全的建设不断加强,各地组织的攻防演练行动会越来越多.今天来分享蓝方在正式防护阶段时,需要重点加强防护过程中的安全保障工作,从攻击监测.攻击分析.攻击阻断.漏洞修复和追踪溯源等方面全面加 ...

  8. 攻防演练中的业务逻辑漏洞及检测思路

    随着各类前后端框架的成熟和完善,传统的SQL注入.XSS等常规漏洞在Web系统里逐步减少,而攻击者更倾向于使用业务逻辑漏洞来进行突破.业务逻辑漏洞,具有攻击特征少.自动化脆弱性工具无法扫出等特点,也为 ...

  9. 2020HW必备-蜜罐如何在攻防演练中战术部防

    原创作者:长亭科技,已获授权. 文末记得获取<红蓝对抗--蓝队手册>,或许对你目前的HW工作有参考价值. 网络攻防演练活动以模拟真实攻击为重要标准,对参与演练单位的各类系统进行渗透,通过设 ...

最新文章

  1. java dump分析工具_java性能分析与常用工具
  2. 栏目图片 栏目描述_网站描述怎么写?对网站优化有什么作用?
  3. linux shell 数值计算let和expr
  4. UVA1601The Morning after Halloween 单向加双向bfs
  5. Cesium学习系列汇总
  6. FPGA核心板内部各类型资源总结(xilinx)
  7. 对架构师认识的误区有哪些?
  8. Hdu2558(欧拉函数)
  9. 直播客户端和浏览器使用桌面共享时出现黑屏等问题
  10. python使用win32*模块模拟人工操作——城通网盘下载器(零)
  11. 德国AgBB VoC有害物质测试
  12. qt自定义窗口标题栏
  13. [MongoDB] 运维相关操作记录
  14. etc的常见算法_几个常用算法的适应场景及其优缺点(非常好)
  15. php多张图片制作成视频教程,如何将多张图片转换成视频?快速制作电子相册的方法...
  16. 全倒装COB小间距LED全彩显示屏必将推动下一代显示技术的发展。
  17. 英语不好怎么自学python_为什么我就是学不好英语啊?我明明很努力,但是为... 我英语一般,但我很想学Python这个编程语言,行不?...
  18. 安装win和xp双系统 若干问题
  19. 小米重要通知android,Android开发笔记——小米通知‘坑’ app的通知一直显示在不重要通知里 ......
  20. 云顶之弈5.26服务器维护,云顶之弈维护到几点 云顶之弈维护公告最新 云顶之弈12月26日几点能上...

热门文章

  1. .net core精彩实例分享 -- 泛型和集合
  2. 使用HTML5创建和播放声音
  3. 顺序图组合片段类型及属性
  4. c语言排队系统,【分享】C语言 银行取票排队系统
  5. C#求两个日期之间相差的天数和当前日期+30天插入数据库
  6. mysql显示错误代码1067_每日一记--Mysql错误代码1067
  7. 1024灯控台初学_MA2的小弟MA1控台说明书
  8. 用python画分形树的详细解析_基于Python的matplotlib库绘制分形树
  9. 笔记本电脑怎样连接打印机_怎样使用打印机,打印机的基础知识
  10. java与安卓接口_Android-Java-接口Interface