渗透测试——七、网站漏洞——命令注入和跨站请求伪造(CSRF)

news2025/2/26 5:34:09

渗透测试

  • 一、命令注入
  • 二、跨站请求伪造(CSRF)
  • 三、命令注入页面之注人测试
  • 四、CSRF页面之请求伪造测试

一、命令注入

命令注入(命令执行) 漏洞是指在网页代码中有时需要调用一些执行系统命令的函数例如 system()、exec()、shell_exec()、eval()、passthru(),代码未对用户可控参数做过滤,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。
常见连接符如下:

A;B,# 先执行A,再执行 B。
A&B,# 简单拼接,A、B之间无制约关系
A|B,# 显示B的执行结果。
A&&B,# A执行成功,然后才会执行 B。
A||B,# A执行失败,然后才会执行 B。

命令注入漏洞的分类如下:

  • (1)代码层过滤不严
    商业应用的一些核心代码封装在二进制文件中,在 Web 应用中通过 system 函数来调用svstem( “bin/program – arg $arg”) 😮
  • (2) 系统的洞造成命令注入
    例如 Bash 破壳漏洞(CVE-2014 -6271)
  • (3)调用的第三方组件存在代码执行漏洞
    例如 WordPress 中用来处理图片的ImageMagick 组件、Java 中的命令执行漏洞 (Struts2/Elasticsearch Groovy 等)、ThinkPHP 命令执行等。

对于命令注入,可从以下几个方面进行防御:

  • 1、尽量少用执行命令的函数或者直接禁用。
  • 2、参数值尽量使用引号括,并在拼接调用 addslashes 函数进行转义
  • 3、在使用动态函数之前,确保使用的函数是指定的函数之一
  • 4、在进入执行命令的函数方法之前,对参数进行过滤,对敏感字符进行转义。
  • 5、在可控点是程序参数的情况下,使用escapeshellcmd 函数进行过滤;在可控点是程序参数值的情况下,使用escapeshellarg 函数进行过滤。

二、跨站请求伪造(CSRF)

跨站请求伪造(cross-site request forgery),也被称为 one-click attack 或者 session riding.通常缩写为 CSRF 或者XSRF,是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法。
跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作 (例如发邮件、发消息,甚至财产操作,比如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了 Web 中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
在这里插入图片描述

三、命令注入页面之注人测试

将安全级别调整至 Low 级别,打开“命令注人”页面,查看源码,可以知道 Low 级别的代码接收了用户输入的 IP,对目标P 从主机服务器的角度进行 ping 测试。代码中对用户输人的IP 并没有进行任何的过滤,所以利用该漏洞进行命令注入。
网页在编辑时,要注意编码格式,使用UTF -8 格式时,中文相应地会出现HTML乱码。
在这里插入图片描述
在这里插入图片描述
可以利用&、&&、|、||等命令连接符,在 ping 完后再执行系统命令,如查看IP 信息、为服务器添加用户 等非法操作。
在这里插入图片描述
将安全级别调整至 Medium 级别,打开“命令注入”页面,查看源码,可以知道 Medium级别的代码在 Low 级别代码的基础上增加了对字符“&&”和“;”的过滤,但在做 Low 级别实验时,用的字符“&”并不在它的过滤范围中。
在这里插入图片描述
&& 和&的区别在于,&& 是执行完前面的命令后,再执行后面的命令;& 是不管前面的命令是否已执行,后面的都执行。
将安全级别调整至 High 级别,打开“命令注入”页面,查看源码,可知道 High 级别的代码进行了黑名单过涨,把一些常见的命令连接符给过滤了。黑名单过滤看似安全,但是如果黑名单不全,则很容易进行绕过。仔细看黑名单过滤中的“1”,其后面还有一个空格,于是用“1”或者“1”又可以绕过。
实际渗透中,命令注入可以用来修改上传文件的文件类型。利用“重命名”命令把上传的JPG 文件改成 PHP 文件。
在这里插入图片描述

四、CSRF页面之请求伪造测试

将安全级别调整至 Low 级别,打开“CSRF”页面。
在这里插入图片描述
页面功能是用户更新密码,但代码里没有对更改代码的合理性做验证。在界面中输入要修改的密码并用 Burp Suite 软件抓包,修改密码的 URL为:
在这里插入图片描述
在这里插入图片描述
这时攻击者可利用这个 URL,稍做修改,发送给受害者,并引诱受害者在登录网站的情况下点击,如 URL 修改为 http://192.168.217.130/dvwa/vulnerabilities/csrf/? password_new =harker&password_conf = harker&Change =%E6%9B%B4%E6%9%B9#,受害者点击链接后,就会在不知情下把登录网站的密码修改为“harker”。
为了隐藏攻击者发送的URL,可将URL链接写在网页里,发布在攻击者的网站上,当受害者无意中浏览攻击者的网站时原有的密码被修改。
将安全级别调整至 Medium 级别,打开“CSRF”页面。
在这里插入图片描述
Medium 级别比Low 级别多了一个验证:if(stripos($_SERVER HTTPREFERER门SERVER['SERVER NAME )! == false)。
验证受害者访问的网页与修改密码网页是否同一网站。这时含有 CSRF 的网页就不能放在攻击者的服务器上了,而需要利用文件上传的方式上传至与受害者访问修改密码网页的网站上进行访问。
在这里插入图片描述
High 级别的代码加入了 Anti - CSRF token 机制,用户每次访问修改密码页面时,服务器都会返回一个随机的 token。向服务器发起请求时,需要提交 token 参数,而服务器在收到请求时,会优先检查 token,只有 token 正确,才会处理客户端的请求。要绕过这个机制,就需要获得 token 值,这需要一定的网页编程基础,这里就不赘述了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

B站缓存视频M4S合并MP4(js + ffmpeg )

文章目录 B站缓存视频转MP4(js ffmpeg )1、说明 2、ffmpeg2.1 下载地址2.2 配置环境变量2.3 测试2.4 转换MP4命令 3、处理程序 B站缓存视频转MP4(js ffmpeg ) 注意:这样的方式只用于个人之间不同设备的离线观看。请…

链式二叉树的创建及遍历(数据结构实训)

题目: 链式二叉树的创建及遍历 描述: 树的遍历有先序遍历、中序遍历和后序遍历。先序遍历的操作定义是先访问根结点,然后访问左子树,最后访问右子树。中序遍历的操作定义是先访问左子树,然后访问根,最后访问…

阿里云实时数据仓库HologresFlink

1. 实时数仓Hologres特点 专注实时场景:数据实时写入、实时更新,写入即可见,与Flink原生集成,支持高吞吐、低延时、有模型的实时数仓开发,满足业务洞察实时性需求。亚秒级交互式分析:支持海量数据亚秒级交…

单片机学习13——串口通信

单片机的通信功能: 实现单片机和单片机的信息交换,实现单片机和计算机的信息交换。 计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。 通信有并行通信和串行通信两种方式。 在多微机系统以及现在测控系统中信息的交换多采用串行通信方…

游戏盾的防御原理以及为什么程序类型更适合接入游戏盾。

游戏盾是一种专门用于游戏服务器的安全防护服务,旨在抵御各种网络攻击。它的原理主要包括以下几个方面: 流量清洗和过滤:游戏盾会对进入游戏服务器的流量进行实时监测、分析和过滤。它通过识别恶意流量和攻击流量,过滤掉其中的攻击…

SVM原理理解

目录 概念推导: 共识:距离两个点集距离最大的分类直线的泛化能力更好,更能适应复杂数据。 怎么能让margin最大? 最大化margin即: 拉格朗日乘子法: 为什么公式中出现求和符号? SVM模型: 小结&#…

css弹窗动画效果,示例弹窗从底部弹出

从底部弹出来,有过渡动画效果 用max-height可以自适应内容的高度,当内容会超过最大高度时可以在弹窗里加个scroll-view 弹窗不能用v-if来隐藏,不然transition没效果,transition只能对已有dom元素起效果,所以用透明和v…

55.MQ高级特性

目录 一、RabbitMQ部署指南。 1)单机部署。 1.1.下载镜像 1.2.安装MQ 2)安装DelayExchange插件。 2.1.下载插件 2.2.上传插件 2.3.安装插件 2.4.使用插件。 3)集群部署。 3.1.集群分类 3.2.获取cookie 3.3.准备集群配置 3.4.启…

【开源】基于JAVA语言的农家乐订餐系统

项目编号: S 043 ,文末获取源码。 \color{red}{项目编号:S043,文末获取源码。} 项目编号:S043,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核…

Day15——File类与IO流

1.java.io.File类的使用 1.1 File类的理解 File 类及本章下的各种流,都定义在 java.io 包下。一个 File 对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象&#xf…

Qt 输入一组数,排序后用柱状图显示

Qt柱状图&#xff0c;需要使用到QChart模块&#xff0c;因此需要在安装Qt时勾选上QChart模块。然后在工程.pro文件中加上 QT charts 参考代码&#xff1a; //MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPushButton…

Global IIIumination(GI)全局光照原理(一)3D空间全局光照

文章目录 一、Global IIIumination&#xff08;GI&#xff09;全局光照基本概念二、主流的全局光照方法&#xff1a;三、Reflective shadow maps&#xff08;RSM&#xff09;反射阴影贴图 全局光照四、Light Propagation Volumes (LPV)光线传播体积 全局光照1.第一步&#xff0…

Apache Flink(四):Flink 其他实时计算框架对比

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 根据前文描述我们知道Flink主要处…

Qt::UniqueConnection和lambda一块用无效

如果槽函数是lambda。 那么用了Qt::UniqueConnection也会出现槽函数被多次调用的问题。 原因&#xff1a; 参考官方文档&#xff1a; QObject Class | Qt Core 5.15.16https://doc.qt.io/qt-5/qobject.html#connect

UE Websocket笔记

参考链接 [UE4 C入门到进阶]12.Websocket网络通信 - 哔哩哔哩 包含怎么用Nodejs 写测试服务器 UE4_使用WebSocket和Json&#xff08;上&#xff09; - 知乎 包含Python写测试服务器 UE4_使用WebSocket和Json&#xff08;下&#xff09; - 知乎 示例代码 xxx.Build.cs"W…

万界星空科技MES---制造企业的加工生产模式

在现代制造业中&#xff0c;加工生产模式是制造企业组织和管理生产过程的重要方面。不同的加工模式适用于不同的生产需求和产品类型。其中流水型、离散型和混合型是三种常见的加工生产模式。1. 流水型加工模式 流水型加工模式是一种高度自动化的生产方式&#xff0c;适用于…

Django-Redis

NoSQL&#xff1a;(不支持sql语句) Redis MongoDB Hbase hadoop Cassandra hadoop key-value数据库&#xff08;非关系性数据库&#xff09; redis优势 性能高&#xff0c;读取速度快&#xff0c;存在内存中 Redis应用场景 用来做缓存 在某些特定场景下替代传统数据库---社交…

WEB组态编辑器(BY组态)介绍

BY组态是一款非常优秀的纯前端的【web组态插件工具】&#xff0c;可无缝嵌入到vue项目&#xff0c;react项目等&#xff0c;由于是原生js开发&#xff0c;对于前端的集成没有框架的限制。同时由于BY组态只是一个插件&#xff0c;不能独立运行&#xff0c;必须嵌入到你方软件平台…

每日一题:LeetCode-11.盛水最多的容器

每日一题系列&#xff08;day 13&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

JAVA导出PDF(一)

思路一&#xff1a;直接导出pdf 使用freemarker和itext把html转pdf&#xff0c;存在中文乱码&#xff0c;宋体不识别&#xff0c;需下载simsun.ttc字体&#xff0c;空白占位符不识别等等问题&#xff0c;对前端依赖性较大&#xff0c;不推荐&#xff1b; 适用范围&#xff1a;…