本文由红日安全成员: ruanruan 编写,如有不当,还望斧正。
大家好,我们是红日安全-Web安全攻防小组。此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名字叫 Web安全实战 ,希望对想要学习Web安全的朋友们有所帮助。每一篇文章都是于基于漏洞简介-漏洞原理-漏洞危害-测试方法(手工测试,工具测试)-靶场测试(分为PHP靶场、JAVA靶场、Python靶场基本上三种靶场全部涵盖)-实战演练(主要选择相应CMS或者是Vulnhub进行实战演练),如果对大家有帮助请Star鼓励我们创作更好文章。如果你愿意加入我们,一起完善这个项目,欢迎通过邮件形式(sec-redclub@qq.com)联系我们。
1.会话安全概述
1.1 什么是会话
session会话机制是一种服务器端机制,它使用类似于哈希表(可能还有哈希表)的结构来保存信息。当程序需要为客户端的请求创建会话时,服务器首先检查客户端的请求是否包含会话标识符(称为会话ID)。如果包含它,它先前已为此客户端创建了一个会话。服务器根据会话ID检索会话(无法检索,将创建新会话),如果客户端请求不包含会话ID,则为客户端创建会话并生成与会话关联的会话ID。 session id应该是一个既不重复也不容易被复制的字符串。会话ID将返回给客户端以保存此响应。
1.2常见会话问题
1.2.1会话预测
即预测应用程序的身份验证模式的会话ID值。通过分析和理解会话ID生成过程,攻击者可以预测有效的会话ID值并获得对应用程序的访问权限。
1.2.2会话劫持
通过利用各种手段获取用户Session ID后,使用该Session ID登录网站,获取目标用户的操作权限。
1.2.3会话重用
用户退出系统后,服务器端Session未失效,攻击者可利用此Session向服务器继续发送服务请求。
测试方法:登录后将会话注销,再次重放登录时的数据包仍然可正常登录系统。
1.2.4会话失效时间过长
应用系统的会话失效时间过长。导致服务器性能受损,且由于过长的失效时间会导致可以被多次利用。
测试方法:系统登录后会话长时间不失效,使用系统功能,仍可正常使用。
1.2.5会话固定
在用户进入登录页面,但还未登录时,就已经产生了一个session,用户输入信息,登录以后,session的id不会改变,也就是说没有建立新session,原来的session也没有被销毁)。攻击者事先访问系统并建立一个会话,诱使受害者使用此会话登录系统,然后攻击者再使用该会话访问系统即可登录受害者的账户。
测试方法:系统登录前和登录后,用户的seesion保持不变。
2.危害
攻击者可利用漏洞绕过身份验证提升权限。
3.测试方法
3.1测试靶场介绍
下面介绍两个测试靶场,DVWA靶场和WebGoat靶场。
3.1.1 DVWA
3.1.1.1 靶场介绍
DVWA (Damn Vulnerable Web Application) 是用 PHP+MySQL 编写的一套用于漏洞检测和教学的程序,支持多种数据库,包括了 SQL 注入、XSS 等一些常见的安全漏洞。
3.1.1.2 安装过程
下载地址:http://www.dvwa.co.uk/
下载后解压放到WWW目录,配置好本地域名
修改config.inc.php.dist配置文件中的数据库密码,并且把文件后缀.dist去掉
然后访问配置的本地域名,下拉点击Create Database。
然后登录默认管理员账户:admin/password,出现下图即为安装成功。