一、什么是webshell
webshell就是以aspx、php、jsp等网页文件形式存在的一种命令环境
也可以将其称为一种网页后门
黑客在入侵网站后,通常会将jsp、aspx或php后门文件与网站服务器web目录下正常的网页文件混在一起
然后就可以使用浏览器来访问后门文件,得到一个命令执行环境,以达到控制网站服务器的目的
二、分类
按照文件大小可以分为三类:大马 小马 一句话木马
三、一句话木马
<?php eval($_GET['cmd']);?>
<?php eval($_POST['cmd']);?>
get&post 表示客户端向服务端传递参数的两种方式,eval函数用来执行命令
四、文件上传漏洞:
上传文件时,如果服务器后端未对上传的文件进行严格的验证和过滤,就可能造成上传恶意文件的行为
(1)客户端检测:就是在网页上写一段JavaScript脚本,校验文件上传的后缀名,有白名单形式也有黑名单形式
判断方式:在点击上传时便弹出对话框,指明可以传的文件格式,此时并没有发送数据包
Upload-labs 01:
点击上传后出现文件格式提醒
Solve1:直接在浏览器f12中的设置中禁用JavaScript 即可实现上传
不过在实战中直接禁用js插件会导致一些页面无法正常显示,还是存在着一些缺陷。
Solve2(常用)抓包截获 修改 发送:使用burpsuite工具抓包,直接修改后缀名为.php然后点击Forward即可完成上传
就是上传一个shell 用合法的后缀命名,抓包截获后在修改为正确格式,发送后即可实现上传
(2)服务端验证:MIME验证
通过检测http包中的Content-type字段中的值来判断上传文件是否合法,一般采用白名单的方式来进行检测
常见的CT值有
文本:text/plain、text/html、text/css、text/javascript、text/xml
图片:image/gif、image/png、image/jpeg
视频:video/webm、video/ogg
音频:audio/midi、audio/mpeg、audio/webm、audio/ogg、audio/wav
二进制:application/octet-stream、application/pdf、application/json
在表单中进行文件上传:multipart/form-data
Upload-labs 02:
上传一个1.php的shell文件,抓包后修改上传的文件类型
即修改Content-Type为image/gif 发送即可
标签:文件,text,image,upload,labs,CTFer,audio,上传 From: https://www.cnblogs.com/heck1ng/p/18005306