记一次应急响应之网站暗链排查

news2024/9/24 23:28:28

目录

前言

1. 从暗链而起的开端

1.1 暗链的介绍

1.2 暗链的分类

2. 在没有日志的情况下如何分析入侵

2.1 寻找指纹

2.2 搜索引擎搜索+fofa资产搜索

2.2.1 fofa资产搜索

 2.2.2 bing搜索引擎搜索

3.通过搭建系统并进行漏洞复现

4. 应急响应报告编写


前言

免责声明

        博文中涉及的方法可能带有危害性,仅供安全研究与教学之用,读者将其方法用作做其他用途,由读者承担全部法律及连带责任,文章作者不负任何责任.

        事情的起因也是假期的某一天在小程序找洞的时候,刚好在本县教育局的小程序发现了一个暗链后,及时提交给了教育SRC,也是很快得到了回应并希望我进行应急响应,于是就有了本次应急响应的开始,并对其中遇到的事情进行做个总结.

1. 从暗链而起的开端

        既然碰到了暗链,那么就简单介绍一下,也为后面分析本次网站植入的暗链做个铺垫

1.1 暗链的介绍

       暗链,是指看不见但是却被搜索引擎计算权重的外链。暗链的实现方式,是通过漏洞利用、网站后台控制等方式,在网站中植入包含攻击者链接的恶意代码。在网站维护人员和访客没有察觉的情况下,通过网站一次次被加载而高效率提升排名。这些外链,常常是违法的赌钱、情色、行骗网站。因为有些暗链只想提升在百度、谷歌等的排名,为了更好地隐藏,只有使用百度、谷歌爬虫的User-agent才能发现。

1.2 暗链的分类

        这里用介绍以及我自己碰到的案例来引入,方便记录后续的回顾

        (1)JS引入型暗链——通过修改网站title,引入外部JavaScript代码来将暗链植入被害网站,当用户通过搜索引擎搜索特定关键字时进入该网站,通过引入的外部JavaScript代码实现跳转到非法网站。

        其实下面两段脚本作用都是如果监测是如下中包含的搜索引擎进行搜索的本页面就会跳转到对应的bc站点,当然也会有将暗链绑定到一些图片上,在不经意点击时跳转到恶意站点

<script type="text/javascript">
var s=document.referrer
if(s.indexOf("baidu")>0 || s.indexOf("so")>0 || s.indexOf("sogou")>0 || s.indexOf("google")>0){
    location.href="bc站点";
}
</script>
 
<script type="text/javascript">
var regexp=/\.(sogou|soso|baidu|google|youdao|yahoo|bing|so|biso|gougou|ifeng|ivc|sooule|niuhu|biso)(\.[a-z0-9\-]+){1,2}\//ig;
var where =document.referrer;
if(regexp.test(where))
{
    window.location.href='bc站点'
}
</script>

        (2)html隐藏型暗链——通过css或者JavaScript代码隐藏暗链,通常是通过position为负数,或者将display设置为none等方式来隐藏,目的是为了提升非法网站的SEO排名。

        本次应急碰到的便是第二种html隐藏型,这里展示部分代码如下:

        作用是检测搜索页面的是否是爬虫,如果是爬虫展示被篡改后的bc站标题,如果是用户就展示原本的界面标题,作用嘛就是为了提高SEO排名

<script>
    var userAgent = navigator.userAgent.toLocaleLowerCase();
    var searchEngines = ["spider", "bot"];
    var isSearchEngine = searchEngines.some(se => userAgent.indexOf(se) !== -1);

    if (!isSearchEngine) {
        document.title = "XX系统";
}
</script>
<script src="引入的篡改js页面代码"></script>
        <meta name="author" content="caiweiming">
        <meta name="robots" content="noindex, nofollow">
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1.0">

        当然,在这次应急之后,我也进行了资产测绘和发现,存在大量站点存在被篡改的问题,其中也发现了升级版的暗链,升级版是在之前的基础上对bc信息进行了ascill进行编码,这样也是为了隐藏被篡改的信息,毕竟普通人看到了之后也不会进行解码吧.

2. 在没有日志的情况下如何分析入侵

        因为在小程序入手的话还是比较困难的,于是转为较为擅长的web端,同时因为本次并未提供日志以及管理员账号等信息,如果有日志的话分析还是比较简单的,当然也不排除日志被清理了,毕竟还是一个比较敏感的站点,可以理解.

        没了日志的话,作为渗透小子,当然以黑盒的方式来进行分析了,于是想到,一般政府站点都是通过一些cms或是通过一些开源的系统搭建的,于是一场黑白盒审计开始了

2.1 寻找指纹

        打开web站点,并查看网站指纹信息,确定网站的指纹信息,并确定开发语言为PHP,根据我摸过的无数站点来看,此时基本确认为通用的建站系统.

        在查看网站源代码后,确认资产的js指纹特征,当然还有对应的版本信息,这里就不展示了

/static/admin/js/dolphin.js

2.2 搜索引擎搜索+fofa资产搜索

2.2.1 fofa资产搜索

通过fofa搜索js指纹信息,通过查看站点的页面,以及查看页面源代码确定是同一套系统

        然后随手试了一下admin/admin,居然进入了后台,在后续中操作中知道了原来是创建系统时的默认账号密码,也算有收获知道了这种站点后台长这样.

 2.2.2 bing搜索引擎搜索

        通过得到的系统信息以及版本进行搜索,最终确认本系统存在文件上传,并且知道了系统创建时的默认管理员用户为admin/admin

        尝试通过admin/admin成功能登录后台,信息较多打码太麻烦了,不贴了

3.通过搭建系统并进行漏洞复现

        既然存在漏洞并且能通过弱口令进入后台系统,那么入侵者很是采用文件上传webshell拿下后台控制权限,并进行页面的篡改

         然后后续的流程就是跟着佬的这篇博文文章进行复现操作,搭建才是最重要的

DolphinPHP ≤ 1.4.3文件上传漏洞分析_海豚php框架漏洞-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Hananana46/article/details/113625406        主要是application/admin/controller/Attachment.phpjcrop函数,在后台的个人信息的文件上传处,没有进行任何的过滤操作,因此存在任意文件上传

首先放掉第一个个包,修改第二个包

成功返回上传路径,进行访问

        确认漏洞存在后,此时就基本知道了入侵者入侵的整个流程,当然这是我分析后的结果,当然最后也收到了感谢,证明我的分析是正确的

4. 应急响应报告编写

这里我用的ShitReport编写的报告,还是很方便的

        攻击者的流程: 首先通过DolphinPHP系统默认弱口令拿到网站权限,在管理员后台的个人信息处的图片上传处,上传webshell,拿到网站权限,最后篡改index.php页面信息插入暗链

        修复建议:修改管理员密码为强口令、通过修改系统代码增加实施访问控制和文件上传功能的验证、增强监控和日志记录、进行应用安全审计、在管理员文件上传的图片处移除后门文件,制定定期的应急响应计划、部署Web应用防火墙,并定期进行代码审计和安全测试,以提高系统安全性和响应能力。

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

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

相关文章

二叉树(binary tree)遍历详解

一、简介 二叉树常见的遍历方式包括前序遍历、中序遍历、后序遍历和层序遍历等。我将以下述二叉树来讲解这几种遍历算法。 1、创建二叉树代码实现 class TreeNode:def __init__(self,data):self.datadataself.leftNoneself.rightNonedef createTree():treeRootTreeNode(F)N…

大模型提示词工程技术3-提示词输入与输出的优化的技巧详细介绍

大模型提示词工程技术3-提示词输入与输出的优化的技巧详细介绍。《大模型提示词工程技术》的作者&#xff1a;微学AI&#xff0c;这是一本专注于提升人工智能大模型性能的著作&#xff0c;它深入浅出地讲解了如何通过优化输入提示词来引导大模型生成高质量、准确的输出。书中不…

腾讯地图三维模型加载GLTF,播放模型动画

腾讯地图三维模型加载&#xff0c;播放模型动画 关键代码 const clock new THREE.Clock();console.log(gltf)// 确保gltf对象包含scene和animations属性if (gltf && gltf.scene && gltf.animations) {// 创建AnimationMixer实例&#xff0c;传入模型的scenec…

【51单片机】2-3-1 【I/O口】【电动车防盗报警项目】震动传感器实验1—震动点灯

1.硬件 51单片机最小系统LED灯模块震动传感器模块 2.软件 main.c程序 #include "reg52.h"sbit led1 P3^7;//根据原理图&#xff08;电路图&#xff09;&#xff0c;设备变量led1指向P3组IO口的第7口 sbit vibrate P3^3;//Do接到了P3.3口void Delay2000ms() //…

力扣刷题--2185. 统计包含给定前缀的字符串【简单】

题目描述 给你一个字符串数组 words 和一个字符串 pref 。 返回 words 中以 pref 作为 前缀 的字符串的数目。 字符串 s 的 前缀 就是 s 的任一前导连续字符串。 示例 1&#xff1a; 输入&#xff1a;words [“pay”,“attention”,“practice”,“attend”], pref “at…

用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略

作者介绍&#xff1a;杨贝宁&#xff0c;爱丁堡大学博士在读&#xff0c;研究方向为向量数据库 《Higress AI 网关挑战赛》正在火热进行中&#xff0c;Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。下面是他整理的参赛攻略&#xff1a; 背景 我们…

Jmeter(十四)Jmeter分布式部署测试

单个接口测试&#xff0c;我们使用谷歌的插件postman 多个接口测试&#xff0c;我们使用Jmeter进行测试 一、使用工具测试 1、使用Jmeter对接口测试 首先我们说一下为什么用Posman测试后我们还要用Jmeter做接口测试&#xff0c;在用posman测试时候会发现的是一个接口一个接…

存储实验:基于华为存储实现存储双活(HyperMetro特性)

目录 什么是存储双活仲裁机制 实验需求实验拓扑实验环境实验步骤1. 双活存储存储初始化&#xff08;OceanStor v3 模拟器&#xff09;1.1开机&#xff0c;设置密码1.2登录DM&#xff0c;修改设备名、系统时间和导入License1.3 设置接口IP 2. 仲裁服务器配置&#xff08;Centos7…

C++ 两线交点程序(Program for Point of Intersection of Two Lines)

示例图 给定对应于线 AB 的点 A 和 B 以及对应于线 PQ 的点 P 和 Q&#xff0c;找到这些线的交点。这些点在 2D 平面中给出&#xff0c;并带有其 X 和 Y 坐标。示例&#xff1a; 输入&#xff1a;A (1, 1), B (4, 4) C (1, 8), D (2, 4) 输出&#xff1a;给定直…

关于vue2运行时filemanager-webpack-plugin报错isFile is undefind

当我们在运行时报此错误时&#xff0c;在vue.config.js里找一下filemanager-webpack-plugin的配置路径。 new FileManagerPlugin({onEnd: {delete: [./dist.zip],archive: [{ source: ./dist, destination: ./dist.zip }]}}) 在对应的路径下建一个dist文件夹

scrapy--子类CrawlSpider中间件

免责声明:本文仅做分享参考~ 目录 CrawlSpider 介绍 xj.py 中间件 部分middlewares.py wyxw.py 完整的middlewares.py CrawlSpider 介绍 CrawlSpider类&#xff1a;定义了一些规则来做数据爬取&#xff0c;从爬取的网页中获取链接并进行继续爬取. 创建方式&#xff…

七年老玩家《王者荣耀》分析一:【市场与用户以及社交功能】

目录 市场与用户 王者荣耀在不同国家和地区的市场渗透率 王者荣耀的主要收入来源以及增长趋势 王者荣耀的用户活跃度和玩家留存率在最近几年的变化情况 王者荣耀面临的主要竞争对手以及如何在竞争中保持领先地位 《英雄联盟手游》&#xff08;LOL&#xff09; 《虚荣》&a…

手动安装Git,手动在右击菜单注册git运行程序

当我们有git的zip压缩包后&#xff0c;只将压缩包解压也是可以用的&#xff0c;但是每次使用时还得去git的安装包下启动git项目&#xff0c;这样就很麻烦。一般情况下都是右击就有git运行程序的选项&#xff0c;直接点击就好&#xff0c;这时用.exe文件安装就没问题&#xff0c…

智能报警物联网系统:使用MQTT和与Grafana集成的InfluxDB监控工地电梯流量和气象数据

这篇论文的标题是《Smart Alarm IoT System: Monitoring Elevator Traffic and Meteorological Data on Job Sites Using MQTT and InfluxDB integrated with Grafana》&#xff0c;作者们来自约旦大学的计算机工程系和机电工程系。以下是对论文主要内容的详细整理&#xff1a;…

LabVIEW波形图的多点触控实现方法

在LabVIEW中&#xff0c;如何实现波形图的多点触控功能&#xff0c;例如通过触控操作对波形进行放大和缩小&#xff1f; 解答&#xff1a; 在LabVIEW中&#xff0c;尽管原生支持的多点触控功能较为有限&#xff0c;但仍有多种方法可以实现波形图的触控操作、放大和缩小功能&am…

详解Asp.Net Core管道模型中的五种过滤器的适用场景与用法

1. 前言 在 ASP.NET Core 中&#xff0c;过滤器是一种用于对请求管道进行前置或后置处理的组件。它们可以在请求处理的不同阶段干预和修改请求和响应&#xff0c;以实现一些通用的处理逻辑或功能增强。 ASP.NET Core 的管道模型由多个中间件组成&#xff0c;而过滤器是这个模…

质量技术AI提效专题分享-得物技术沙龙

活动介绍 本次“质量技术&AI提效专题分享”沙龙聚焦于质量技术和AI效率领域&#xff0c;将为您带来四个令人期待的演讲话题&#xff1a; 1、《智能化提效实践》 2、《仿真自动化在饿了么金融实践分享》 3、《得物精准测试提效应用》 4、《广告算法灰度拦截实践》 相信这些…

入门Java编程的知识点—>IO流(day13)

重点掌握IO流作用是什么&#xff1f;重点掌握字节流的作用是什么?如何使用?重点掌握缓冲流的作用是什么?如何使用? IO简介 I (in)&#xff1a;输入指得就是从外界进入到程序的方向&#xff0c;通常我们是需要读取外界的数据&#xff0c;所以输入流就是用来读取数据的。 …

超越 CAPE 旧模式,P-CAPE 开创股市回报预测新局面

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文主要介绍的是周期性调整市盈率(CAPE)及其倒数 CAEY 常用于评估股市长期回报,但原始 CAPE 有局限,未充分考虑未分配收益。未分配收益可再投资或回购股票影响收益。应调整周期性调整后的收益为…

【基础】Three.js中添加操作面板,GUI可视化调试(附案例代码)

1.先引入GUI库&#xff1a; import { GUI } from "three/addons/libs/lil-gui.module.min.js";2.实例化gui对象&#xff0c;并添加需要显示的参数: // 实例化一个gui对象const gui new GUI();//设置操作面板位置gui.domElement.style.right "0px";gui.d…