渗透测试之Web安全系列教程(二)

今天,我们来讲一下Web安全!

本文章仅提供学习,切勿将其用于不法手段!

目前,在渗透测试领域,主要分为了两个发展方向,分别为Web攻防领域和PWN(二进制安全)攻防领域。Web 攻防领域,涉及到一些知识点,本系列教程,就来科普一下这些知识点。

接上一篇文章《渗透测试之Web安全系列教程(一)》,我们来继续渗透讨论一下Web安全!

在上一篇文章中,我们提到过同源策略、XSS注入漏洞、网页挂马等相关安全内容!

我们重点强调了学习渗透测试知识目的

我们了解攻击技术原理,是为了使渗透测试行为变得更加有效!是为了能够更好的进行信息安全防御,绝不是为了去进行违法犯罪行为!

现在,我们来继续讲一下来自网页内容威胁的两个方向(网页挂马、网页钓鱼)!

网页挂马,是指在正规合法网站的网页内容中嵌入恶意脚本内容,去实施木马攻击行为!

网页钓鱼,是指仿冒伪装成正规合法网站的网页内容,去实施网页诈骗行为!

无论是网页挂马,还是网页钓鱼,危害都是非常巨大的!

如何避免在浏览器中进行网络冲浪时,遭受网页挂马和网页钓鱼攻击呢?

很多浏览器,都带有 恶意网址拦截 功能!这类功能的技术实现,通常是基于 黑名单机制 的!

通过浏览器的恶意网址拦截功能,我们可以避免很多针对恶意网址的网络访问行为。

但是,由于浏览器恶意网址拦截功能,是基于 黑名单机制 的!也就意味着,未被记录进 黑名单 中的 恶意网址,可能无法被 浏览器 成功拦截!

Google 公司,对外开放了 SafeBrowsing API,用以及时公布最新的恶意网址名单信息。

除了 浏览器 自带的 恶意网址拦截 黑名单机制,还有一项保障浏览器用户的网络访问行为安全的相关技术,那就是 EV SSL 证书技术!对于危险网址EV SSL 证书技术 将会显示为 红色 ,对于安全网址,EV SSL 证书技术 将会显示为 绿色

接下来,让我们观察一篇恶意代码中的部分内容,分析一下,它是如何躲避浏览器的恶意代码检测的!

this.globalThis || (this.globalThis = this);

        function decodeStr(e) {
            var d, c, b;
            if (!e) {
                return ""
            }
            for (d = e[0],
                     c = e.split(d),
                     b = 0; b < c.length; b++) {
                c[b] && (c[b] = String.fromCharCode(c[b]))
            }
            return c.join("")
        }

window.android_url =  decodeStr( '|104|116|116|112|115|58|47|47|*|119|101|*|117|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*' );


window.ios_url  = decodeStr( '|104|116|116|112|115|58|47|47|*|112|112|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*' );

通过观察上面的恶意代码,我们可以获知,当前恶意代码使用了数据加密技术

上面的恶意代码,采用了代码混淆机制

注意,为了避免大家去误操作性地去访问恶意网址,相关代码内容已进行了数据脱敏处理!

上面的恶意代码,通过使用自定义的 decodeStr 函数来实现加密数据还原操作

想要了解上面的恶意代码做了些什么,我们就必须了解上面的代码内容含义是什么!

通过观察,我们获知,加密数据,是以数字形式存储的,那么,我们不禁想到了 ASCII 编码!

ascii 码 104 对应的字符是 h 。

ascii 码 116 对应的字符是 t 。

ascii 码 112 对应的字符是 p 。

ascii 码 115 对应的字符是 s 。

ascii 码 47 对应的字符是 / 。

通过上述的观察,我们可知,代码混淆 使用的是 ASCII编码序列技术!

现在,让我们来科普一下 globalThis 的作用和价值是什么!

全局属性 globalThis 包含全局对象 this 的 值,你可以理解为,类似于全局对象(global object)!

说到 全局对象,让我们来复习一下 C语言编程 中的 全局变量 概念!

是的,没错!全局变量的作用域,是全局的!

全局对象的作用域,也是全局的!

globalThis ,提供了一种抽象化的、以标准化方式去获取不同环境中的全局 this 对象(也就是全局对象自身)的途径。区别于 window 或者 self 这些浏览器对象属性,globalThis 可以在有窗口,或者无窗口的各类型环境中正常使用。你可以较为放心地使用 globalThis,globalThis 实现了运行环境无关化。您仅须记住:全局作用域环境中的 this 对象,即是 globalThis !

我们再来观察看看下面的恶意代码内容:

(function() {
  var hm = document.createElement("script");
  hm.src = "跨域JS脚本的URL地址";
  var s = document.getElementsByTagName("script")[0];
  s.parentNode.insertBefore(hm, s);
})();

上面的代码内容,作用是什么?

是动态创建并添加一个 script 标签,并去解析标签中的内容!

恶意脚本,就是如此规避检测的!恶意脚本,就是如此悄悄的潜入你的浏览器,并去执行恶意代码的!

想要防御来自互联网世界的恶意攻击,我们就必须做到:了解对方是如何地去实施攻击的!

在进行代码审计工作时,在进行渗透测试行为时,当我们发现某个网页文件的内容中包含有类似上述代码内容,那么通常意味着,这个网页文件的内容,是可疑的!这个网页文件的内容安全性,是需要进行深入鉴定的!

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

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

相关文章

第十三讲 字符串索引-字符串索引-分割-切片

目录 1.字符串索引 1.1 提取单个字符 1.2 提取子串 1.3 倒序提取字符

faiss ivfpq索引构建

假设已有训练好的向量值&#xff0c;构建索引&#xff08;nlist和随机样本按需选取&#xff09; import numpy as np import faiss import pickle from tqdm import tqdm import time import os import random# 读取嵌入向量并保留对应关系 def read_embeddings(directory, ba…

操作系统|进程和线程的上下文以及他们的上下文切换具体流程?

进程和线程已经是老生常谈的问题了&#xff0c;现在那么他们是如何进行切换的呢&#xff1f;他们之间的切换有什么区别呢&#xff1f;如果你不懂的话&#xff0c;就让我们一起来探讨一下吧&#xff01; 进程上下文切换(context switch) 进程到底由哪些部分组成&#xff1f; …

数据字典笔记

文章目录 数据库字典表字典主表字典明细表数据库字典表刷新 静态类字典表静态map实现字典表dict类dictUtils类 字典表的正向和反向、及什么时候正向&#xff0c;什么时候反向 数据字典在研发中必不可少。 例如&#xff1a; 删除状态 0未删除 1已删除 默认0 字典表每个项目都会用…

VsCode编译调试Suricata

原理&#xff1a; Suricata 源码说到底也是一个makefile项目&#xff0c;Code 是绝对可以编译的&#xff0c;本质上还是模拟 make 命令&#xff0c;然后使用GDB调试c程序。 有一个视频: https://www.bilibili.com/video/BV1Aw4m1U7Mo/?vd_sourceb6d10e8288ab2f9afe2227a9444…

JDK的Dockerfile

openjdk(https://openjdk.org/) 也可以用微软的 https://learn.microsoft.com/zh-cn/java/openjdk/download#openjdk-17 使用debian系统 FROM openjdk:17-slim MAINTAINER xxxENV SCM_PARAMS"" ENV JAVA_OPTS"$JAVA_OPTS -Dspring.profiles.activedev -Djava…

GPT-4o vs. GPT-4 vs. Gemini 1.5 性能评测,谁更胜一筹!

OpenAI 最近推出了 GPT-4o&#xff0c;OpenAI有一次火爆了&#xff0c;其图像、音频、视频的处理能力非常强。 最令人印象深刻的是&#xff0c;它支持用户与 ChatGPT 实时互动&#xff0c;并且能够处理对话中断。 而且&#xff0c;OpenAI 免费开放了 GPT-4o API 的访问权限。…

什么是 浅比较 什么 是 深比较

在编程中&#xff0c;特别是处理对象和数组等复合数据类型时&#xff0c;我们经常需要比较两个数据结构是否相等。浅比较&#xff08;Shallow Comparison&#xff09;和深比较&#xff08;Deep Comparison&#xff09;是两种常见的比较方法&#xff0c;它们在处理这种比较时有着…

finebi或者finereport发邮件

我们二次开发中&#xff0c;如果想利用产品自带的发邮件的功能&#xff0c;来发送自己的邮件内容。 首先 决策系统中邮件相关信息要配置好之后&#xff1a; 这里配好了发件人&#xff0c;以及默认发件人后&#xff0c; private void sendEmail(String content,String subject)…

云计算如何助力金融科技企业实现高效运营

一、引言 随着信息技术的飞速发展,云计算作为一种新兴的计算模式,正在逐渐改变着传统金融行业的运营模式。金融科技企业作为金融行业的重要组成部分,面临着日益增长的业务需求和技术挑战。在这一背景下,云计算凭借其弹性扩展、高可用性、低成本等优势,成为金融科技企业实…

WebSocket详解与封装工具类

一、前言 在我们了解websocket之前&#xff0c;不妨先想想这几个问题&#xff1a; websocket是什么&#xff1f;websocket有什么好处和特点&#xff1f;为什么要用到websocket&#xff1f;什么情况下会用到websocket&#xff1f; 好了&#xff0c;带着这几个疑问一起来了解一…

163.二叉树:二叉树的最小深度(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

海南省三支一扶报名照上传失败?别忘了这

一、海南三支一扶报名照上传失败的2个原因 1.未按要求使用浏览器&#xff1a;请使用IE浏览器&#xff08;IE8以上版本&#xff09;、Chrome(谷歌浏览器&#xff09;或 Firefox&#xff08;火狐&#xff09;浏览器 来使用本系统&#xff0c;360浏览器等其他浏览器请使用极速模式…

C语言编程中的问号:深入解析三元运算符与条件编译

C语言编程中的问号&#xff1a;深入解析三元运算符与条件编译 在C语言编程的广阔天地中&#xff0c;问号&#xff08;?&#xff09;这一看似简单的符号&#xff0c;实则蕴含着丰富的内涵和多样的用法。它既可以作为三元运算符的一部分&#xff0c;用于在代码中实现条件判断&a…

数电课设:电动机转速测量控制电路

电动机转速测量控制电路设计 摘要 本文设计的电动机转速测量控制电路通过数字电路核心实现对电机转速的测量和显示。与市面上基于单片机的电机转速测量相比&#xff0c;该电路无需要注重复杂的软件设计&#xff0c;功耗小&#xff0c;稳定性高&#xff0c;实现了更好的底层封装…

C语言编程电子印章:技术与应用的深度探索

C语言编程电子印章&#xff1a;技术与应用的深度探索 在数字化时代&#xff0c;电子印章以其高效、便捷的特性逐渐取代了传统的物理印章。而C语言&#xff0c;作为一种基础且强大的编程语言&#xff0c;为电子印章的开发提供了强大的技术支持。本文将从四个方面、五个方面、六…

如何组织我的 Python 代码

编写代码更像是一门艺术&#xff0c;而不是一门科学。编写精炼、合乎逻辑且强大的工程解决方案对于解决问题非常重要。然而&#xff0c;似乎存在一个重大挑战&#xff1a;让这些解决方案全面且易读。 本文的重点是如何最好地组织 Python 类&#xff0c;使其既可读又整洁。Pyth…

pdf文件太大如何变小,苹果电脑压缩pdf文件大小工具软件

压缩PDF文件是我们在日常办公和学习中经常会遇到的需求。PDF文件由于其跨平台、保持格式不变的特点&#xff0c;被广泛应用于各种场合。然而&#xff0c;有时候我们收到的PDF文件可能过大&#xff0c;不便于传输和存储&#xff0c;这时候就需要对PDF文件进行压缩。下面&#xf…

针对硅基氮化镓高电子迁移率晶体管(GaN-HEMT)的准物理等效电路模型,包含基板中射频漏电流的温度依赖性

来源&#xff1a;Quasi-Physical Equivalent Circuit Model of RF Leakage Current in Substrate Including Temperature Dependence for GaN-HEMT on Si&#xff08;TMTT 23年&#xff09; 摘要 该文章提出了一种针对硅基氮化镓高电子迁移率晶体管&#xff08;GaN-HEMT&…

【Java数据结构】详解LinkedList与链表(四)

&#x1f512;文章目录&#xff1a; 1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 2.什么是LinkedList 3.LinkedList的使用 3.1LinkedList的构造方法 3.2LinkedList的其他常用方法介绍 addAll方法 subList方法 LinkedList的常用方法总使…