DVWA-弱会话IDS

news2025/1/16 1:54:58

弱会话IDS

Session简介:

用户登录后,在服务器就会创建一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带Session去访问即可。

sessionID作为特定用户访问站点所需要的唯一内容。如果能够计算或轻易猜到该sessionID,则攻击者将可以轻易获取访问权限,无需录直接进入特定用户界面,进而进行其他操作。

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

Session利用的实质:

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

Session劫持:

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

注意:session id 过于简单就会容易被人伪造。根本都不需要知道用户的密码就能访问,用户服务器的内容了。

Low等级

查看源码

<?php
 
$html = "";
   #判断是否为POST请求
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    if (!isset ($_SESSION['last_session_id'])) {
        $_SESSION['last_session_id'] = 0;   #初始值为0
    }
    $_SESSION['last_session_id']++;         #每次自增+1
    $cookie_value = $_SESSION['last_session_id'];
    setcookie("dvwaSession", $cookie_value);
}
?> 

相关函数:

  • setcookie() 函数:向客户端发送一个 HTTP cookie。
  • setcookie(name,value,expire,path,domain,secure,httponly)。
    • name----必需。规定cookie的名称。
    • value----必需。规定cookie的值。
    • expire----可选。规定cookie的有效期。
    • path----可选。规定cookie的服务器路径。
    • domain----可选。规定cookie的域名。
    • secure----可选。规定是否通过安全的HTTPS连接来传输cookie。
    • httponly----可选。规定是否Cookie仅可通过HTTP协议访问。

low级别未设置过滤,直接用bp抓包,可以清楚的看到dvwaSesion的cookie,每重放一次,dvwaSesion增加一:

image-20230908212122048

构造payload

payload:通俗一点讲,在程序的世界里,payload(有效载荷)就是对于接收者有用的数据。

在计算机安全领域中,“payload”(载荷)是指一段恶意代码或攻击者注入的任意代码,旨在利用存在的漏洞、弱点或系统功能来执行特定的操作。可以将其类比为病毒或炸弹携带的有害物质。

攻击者在设计"payload" 时,通常会充分利用已知的漏洞或弱点。通过触发这些漏洞或弱点,攻击者可以执行各种操作,如获取管理员权限、窃取敏感数据、控制目标系统、传播恶意软件等。
dvwaSession=6; security=low; BkGOp9578O_think_template=default; PHPSESSID=37apgf67l212sp9u7sre95e534

清除浏览器的cookie缓存,然后打开一个新网页,在HackBar里面输入url和构造的payload(cookie),其实只需要cookie就可以。

清除缓存

image-20230908212733890

image-20230908213020318

清除缓存后,浏览器没有登录过DVWA,但通过这个session,却绕过了输入账号密码的过程,直接登录进来。

Medium等级

常看源代码

<?php

$html = "";

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $cookie_value = time();
    setcookie("dvwaSession", $cookie_value);
}
?>
  • time() 函数:返回自当前时间的秒数。

使用了时间戳,但是攻击者依然可以伪造。

直接用bp抓包,查看Cookie

image-20230908213729057

要用的时间转换网站 时间戳(Unix timestamp)转换工具 - 在线工具。

image-20230908213815728

构造payload

dvwaSession=1694180258; security=medium; PHPSESSID=haqi5g1sgh4ei89vain8qa9a50

清除浏览器的cookie缓存,然后打开一个新网页,在HackBar里面输入url和构造的payload(cookie)。

image-20230908214046638

High等级

查看源码

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

?>

进行了MD5摘要只需将摘要值的原值找到即可知道它的cookie的产生规律,然后就可用伪造了

直接用bp抓包, 每Send一下,md5的值就会发生改变。

image-20230908214732803

使用MD5的网站 md5在线解密破解,md5解密加密

image-20230908214813982

就是每次加1,将的数进行MD5加密。如下一次是3,加密的到:eccbc87e4b5ce2fe28308fd9f2a7baf3

image-20230908215028166

构造payload

dvwaSession=eccbc87e4b5ce2fe28308fd9f2a7baf3; security=high; PHPSESSID=kfha42djf13ob0tks9fftu0li7

image-20230908215256922

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1111611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML构建图文并茂类页面----HTML插入图片

插入图片 插入方式1&#xff1a;使用img标签插入图片 例如&#xff1a;<img src"img/2ee18-231100-163232346010b0.jpg" alt"用户注册按钮位置" title"用户注册1" width"1138px"/> 插入方式2 图片做背景&#xff1a;使用styl…

HarmonyOS音频开发指导:使用AVPlayer开发音频播放功能

如何选择音频播放开发方式 在HarmonyOS系统中&#xff0c;多种API都提供了音频播放开发的支持&#xff0c;不同的API适用于不同音频数据格式、音频资源来源、音频使用场景&#xff0c;甚至是不同开发语言。因此&#xff0c;选择合适的音频播放API&#xff0c;有助于降低开发工…

二维码智慧门牌管理系统:打造智慧城市之路

文章目录 前言一、二维码智慧门牌管理系统开发背景二、二维码智慧门牌管理系统开发目标三、二维码智慧门牌管理系统的实现四、二维码智慧门牌管理系统在智慧城市构建中的重要性 前言 随着科技的不断发展&#xff0c;智慧城市已经成为了现代城市规划与发展的核心。为了实现智慧…

C/C++ 快速入门

参考&#xff1a;https://blog.csdn.net/gao_zhennan/article/details/128769439 1 下载Visual Studio Code并安装中文插件&#xff0c;此处不再叙述 2 插件安装C/C插件 3 使用快捷键【Ctr ~】打打开终端 验证并未安装编译器 4 我们即将使用【MinGW-64】做为编译器 https:…

谷歌浏览器网页显示不完整解决方法

谷歌浏览器是非常多用户都在用的一款电脑软件&#xff0c;谷歌浏览器以启动速度快、浏览速度快、界面简单、极强的稳定性等优点受到大家的喜爱&#xff0c;在使用的时候&#xff0c;您可能会遇到打不开网页或显示不全等情况&#xff0c; 那么谷歌浏览器显示不完全怎么解决呢&am…

水族店通过小程序商城经营的作用是什么

对水族店商家而言&#xff0c;市场高需求下&#xff0c;自然可售卖的产品非常广&#xff0c;除了鱼苗外&#xff0c;还有配套的鱼缸、鱼料、驱虫剂、氧气套具等。这些产品中部分是常需的&#xff0c;同时也有较强的同城属性。 在实际经营中&#xff0c;水族店商家经营难题也不…

浅析CRM系统中的“联系人”概念

CRM客户管理系统中的联系人指的是为了产生商机和建立关系而需要进行沟通的对象&#xff0c;强调联系和活动对象而客户强调的是交易对象。联系人管理也是CRM系统的核心功能之一。下面我们来详细说说&#xff0c;CRM系统中的联系人是什么&#xff1f;如何进行联系人管理&#xff…

解决方案|智能制造升级,汽车行业借力法大大电子签进入“快车道”

《“十四五”智能制造发展规划》明确智能制造是制造强国建设的主攻方向&#xff0c;其发展程度直接关乎我国制造业质量水平。发展智能制造对于巩固实体经济根基、建成现代化产业体系、实现新型工业化具有重要作用。 规划明确指出要深入实施智能制造工程&#xff0c;着力提升创…

【红日靶场】vulnstack4-完整渗透过程

系列文章目录 【红日靶场】vulnstack1-完整渗透过程 【红日靶场】vulnstack2-完整渗透过程 【红日靶场】vulnstack3-完整渗透过程 文章目录 系列文章目录前言一、p环境初始化web虚拟机配置win7配置&#xff1a;DC配置&#xff1a;kaliLinux配置&#xff1a;机器密码 二、开始渗…

[论文精读]Graph Attention Networks

论文原文&#xff1a;[1710.10903] Graph Attention Networks (arxiv.org) 论文代码&#xff1a;https://github.com/PetarV-/GAT 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指…

《文献阅读》- 遗传算法作为量子近似优化算法的经典优化器(未完成)

文章目录 标题摘要关键词结论研究背景1.介绍 研究内容、成果3. 量子近似优化算法&#xff1a;基本概念及应用 常用基础理论知识2.相关工作酉矩阵 潜在研究点文献链接 标题 Genetic algorithms as classical optimizer for the Quantum Approximate Optimization Algorithm 参…

并发编程——2.基础概念及其它相关的概述

这篇文章我们来讲一下并发编程中的线程及其相关的概述内容。 目录 1.J.U.C 2.进程、线程、协程 2.1进程 2.2线程 2.3纤程&#xff08;协程&#xff09; 2.4概念小结 3.并发、并行、串行 3.1并发 3.2并行 3.3串行 3.4概念小结 4.CPU核心数和线程数的关系 5.上下文…

如何对发电机组进行负载测试

发电机组负载测试是为了评估其在不同负载条件下的性能和稳定性&#xff0c;下面是对发电机组进行负载测试的步骤&#xff1a; 准备工作&#xff1a; - 确定测试负载的类型和大小&#xff0c;例如&#xff0c;纯阻性负载、电动机负载等。 - 确保测试负载设备符合安全要求&#x…

C#选择排序(Selection Sort)算法

选择排序&#xff08;Selection Sort&#xff09;原理介绍 选择排序&#xff08;Selection Sort&#xff09;是一种简单的排序算法&#xff0c;其实现原理如下&#xff1a; 遍历待排序数组&#xff0c;从第一个元素开始。 假设当前遍历的元素为最小值&#xff0c;将其索引保存…

正点原子嵌入式linux驱动开发——Linux按键输入

在前几篇笔记之中都是使用的GPIO输出功能&#xff0c;还没有用过GPIO输入功能&#xff0c;本章就来学习一下如果在Linux下编写GPIO输入驱动程序。正点原子STM32MP1开发板上有三个按键&#xff0c;就使用这些按键来完成GPIO输入驱动程序&#xff0c;同时利用原子操作来对按键值进…

【Vue】v-if和v-show的区别

v-if&#xff1a;按条件渲染&#xff0c;判定为true时渲染&#xff0c;否则不渲染 v-show&#xff1a;按条件展示&#xff0c;区别在于切换的是display属性的值 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

掌握JavaScript的练习之道:十个手写函数让你信手拈来!

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

企业知识库系统:从0开始,部署企业知识库模型

当今竞争激烈的商业环境中&#xff0c;企业需要不断提高效率和降低成本&#xff0c;以保持竞争力。而建立一个高效的智能知识库&#xff0c;可以帮助企业实现这一目标。 部署企业知识库 但是知识库目前也需要相关专业的工具创建才能满足企业的业务需求&#xff0c;以HelpLook为…

将数组拆分成斐波那契序列

题目描述 示例 代码如下&#xff1a; public class SplitIntoFibonacci {LinkedList<Integer> res new LinkedList<>();public List<Integer> splitIntoFibonacci(String num) {if(num.length() < 3) return res;if(dfs(num, 0)) return res;return new…

【API篇】四、Flink物理分区算子API

文章目录 1、 分区算子&#xff1a;随机分区2、分区算子&#xff1a;轮询分区3、分区算子&#xff1a;重缩放分区4、分区算子&#xff1a;广播5、分区算子&#xff1a;全局分区6、自定义分区 重分区&#xff0c;即数据"洗牌"&#xff0c;将数据分配到下游算子的并行子…