webshell与文件上传漏洞
🎄webshell
🎄什么是webshell
webshell,简称网页后门,简单来说它是运行在web应用之上的远程控制程序
webshell其实就是一张网页,由PHP、JSP、ASP、APS.NET等这类web应用程序语言开发,但webshell并不具备常见网页的登录,例如登录、注册、信息展示等功能,一般会具备文件管理、端口扫描、提权、获取系统信息的功能。拥有比较完整功能的webshell,我们一般称之为大马。功能简易的webshell称为小马。除此之外还有一句话木马、菜刀马、脱裤马、内存马等等的名词,是对于webshell功能或特性的简称。
🎄php一句话木马
<?php @eval($_POST[x]);?>
@是错误控制运算符,当@放置在一个php表达式之前,该表达式可能产生的任何错误信息都将被忽略。
$_POST也可以改成$__GET或$_REQUEST,根据需求选择
例如:对该webshell发送一个POST请求,请求内容为x=phpinfo()
在根目录下新建一个php文档,把一句话木马写进去。
打开网站,post请求
或者也可以尝试一些其他请求x=system(‘dir’);
🎄webshell管理工具
中国蚁剑是一款webshell管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。中国蚁剑的核心代码模块均改版自伟大的中国菜刀。
一句话木马中的post参数就是为连接密码
中国蚁剑不支持edu.cn的域名,这是可以选用其他的webshell管理工具(中国菜刀、哥斯拉)
🎄文件上传漏洞
文件上传的功能是将文本文件上传至服务器进行保存
文件上传漏洞是指文件上传功能没有对上传的文件进行合理严谨的过滤,导致用户可以利用此功能,上传能被服务器解析执行的文件,并通过此文件获得执行服务器端命令的能力。
(例如,如果对方是LAMP架构,是否能上传PHP的webshell到服务器端,然后通过访问上传后的文件地址,从而执行webshell中的代码
前端验证绕过:(当网站只在前端利用js来做校验)
1、抓包(修改文件后缀,之后抓包再改回php)
2、通过禁止js代码、删除js代码(F12可以直接删除代码的)
后缀名更改为.php3即可绕过.php的黑名单为什么?
看到这个正则表达式,php3、php4、php5、phpt、phptml都会被解析为php
大小写绕过
windows不区分大小写,php等同与pHp
Content-Type检测文件类型
抓包修改Content-Type,使其符合白名单类型
[Mime对照表](HTTP Content-type 对照表 (oschina.net))
双写绕过
双写绕过的产生是由于后端在判断是否包含关键字时只删除了一次,所以我们将关键字(php写两次即可)
%00截断
webshell.php %00 .png