webshell木马简介及防护
定义
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
顾名思义,“web”的含义是显然需要服务器开放web服务。“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。
shell特洛伊木马示例:
<span style="font-family:'KaiTi_GB2312';">echo -n "Login:" read name stty -echo echo -n "Password:" read passwd echo " " stty echo echo $name $passwd > /tmp/ttt& sleep 2 echo "Login Incorrect.Re-enter,Please." stty cooked</span>
隐蔽性
webshell后门具有隐蔽性,一般有隐藏在正常文件中并修改文件时间达到隐蔽的,还有利用服务器漏洞进行隐藏,如 "..." 目录就可以达到,站长从FTP中找到的是含有“..”的文件夹,而且没有权限删除,还有一些隐藏的WEBSHELL,可以隐藏于正常文件带参数运行脚本后门。
webshell可以穿越服务器防火墙,由于与被控制的服务器或远程过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。
安全防护
从根本上解决动态网页脚本的安全问题,要做到防注入、防爆库、防COOKIES欺骗、防跨站攻击(xss)等等,务必配置好服务器FSO权限(FSO(FileSystemObject)是微软ASP的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作)。最小的权限=最大的安全。防范webshell的最有效方法就是:可写目录不给执行权限,有执行权限的目录不给写权限。防范方法:
1、建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。
2、对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
3、asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
4、到正规网站下载程序,下载后要对数据库名称和存放路径进行修改,数据库名称要有一定复杂性。
5、要尽量保持程序是最新版本。
6、不要在网页上加注后台管理程序登陆页面的链接。
7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
8、要时常备份数据库等重要文件。
9、日常要多维护,并注意空间中是否有来历不明的asp文件。
10、尽量关闭网站搜索功能,利用外部搜索工具,以防爆出数据。
11、利用白名单上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则。
webshell合集
收集和整理各种webshell,以便在日后的项目中做Webshell检测训练。
webshell集合:https://github.com/tennc/webshell
webshell样本:https://github.com/ysrc/webshell-sample
一句话木马爆破工具:https://github.com/liulongfei/web_shell_bopo
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python 学习(四)
1. 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。 定义函数的规则: 1). 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。 2). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 3). 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 4). 函数内容以冒号起始,并且缩进。 5). return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。 语法: Python 定义函数使用 def 关键字,一般格式如下: def 函数名(参数列表): 函数体 默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。 示例: # 计算面积函数 def area(width, height): return width * height pass w = 4 h = 5 print ("width = ", w, " height = ", h, " area = ", area(w,h)) 打印结果: 图1...
- 下一篇
亲测Mac和Linux安装Tomcat,不服来战
一、今天需要使用到本地的Tomcat,结果在网上找了下教程,都是假的,都有问题,都没有经过测试,不负责任啊啊啊,坑爹坑爹。 Mac正确安装Tomcat的姿势 首先访问一下Tomcat的官网: Tomcat官网 想下载什么版本就点击什么版本 二、下面以Tomcat9为例,Mac和Linux的一定要下载tar.gz文件,其余的都有问题 三、解压后,重命名文件夹 四、通过终端进入到Tomcat的bin目录下 ~/Develop/Tomcat/tomcat9/bin ⌚ 19:16:26 $ pwd /Users/wangdong/Develop/Tomcat/tomcat9/bin ~/Develop/Tomcat/tomcat9/bin ⌚ 19:16:29 $ ls bootstrap.jar setclasspath.bat catalina-tasks.xml setclasspath.sh catalina.bat shutdown.bat catalina.sh shutdown.sh ciphers.bat startup.bat ciphers.sh startup.sh c...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境