查找服务器漏洞技巧分享:交新手朋友如何提高安全水平 (交新手朋友怎么查找服务器漏洞)

在当今信息技术高速发展的时代,每个人的私人信息及公司机密等都需要存储在服务器上。这些服务器总是存在着被黑客攻击的风险,因此服务器安全问题已成为服务器运营者和用户关注的焦点。在服务器运营者和用户之间,双方都需要了解如何查找可能引起安全漏洞的地方,并采取相应措施防范。

下面,我将分享一些查找服务器漏洞的技巧,并向新手朋友提供一些提高安全水平的方法,希望能够帮助大家更好地保护服务器的安全。

一、服务器漏洞的类型及风险

1. 代码漏洞:代码漏洞可能是由于开发人员在写程序的过程中犯下的错误所导致的,这些错误可能会导致黑客以各种方式利用它,例如 SQL 注入或跨站点脚本(XSS)攻击等。

2. 系统漏洞:系统漏洞通常是由于操作系统或软件的缺陷导致的。黑客可以通过这些漏洞访问系统,可能会导致服务器受到破坏或者信息泄露的风险。

3. 认证漏洞:认证漏洞通常是由于安全凭证(如用户名和密码)非常弱或者服务器管理员没有正确设置认证策略而导致的。攻击者可能会利用这些漏洞来破解凭证并访问服务器。

二、查找服务器漏洞的方法

1. 使用端口扫描工具:端口扫描工具可以用来探测服务器的开放端口和服务,它可以找到与服务器相关的漏洞。

2. 系统和应用程序的更新:运行最新版本的操作系统和应用程序可帮助服务器保持更高的安全水平和修复已知的漏洞。

3. 查找其它代码漏洞:开发人员可以使用静态代码分析工具来寻找可能出现的安全漏洞。还可以通过使用安全测试框架来检查应用程序中的代码。

三、提高新手安全水平的方法

1. 设置密码的长度和复杂性:长且复杂的密码比短且简单的密码更加安全,并可以提高服务器的安全性。另外,更换密码的频率也可以进一步提高安全性。

2. 启用多重认证:许多服务器支持多重认证,例如实现短信认证或者使用专门的硬件认证工具。这些可以通过验证用户的身份来提高服务器的安全性。

3. 防火墙的使用:防火墙是一种位于服务器外围的保护层。它可以过滤出入的流量,并通知服务器管理员有人试图非法访问服务器。

无论你是运营服务器的管理员还是日常使用服务器的用户,服务器的安全问题都需要引起足够的重视。通过上述提到的技巧,您可以更好地查找漏洞,并采取相应措施预防它们的发生,从而优化服务器的安全性。希望本文对您有所帮助。

相关问题拓展阅读:

如何安全检测Java Web应用网站漏洞

如何安全检测Java Web应用网站漏洞.txt32因为爱心,流浪的人们才能重返家园;因为爱心,疲惫的灵魂才能活力如初。渴望爱心,如同星光渴望彼此辉映;渴望爱心,如同世纪之歌渴望永远被唱下去。web开发应用程序(网站),是目前应用最广泛的程序。但是开发者的水平参差不齐,导致了各种各样web漏洞的出现。本文站在分层架构的角度,分析一下如何在java web程序中找到可能出现的种种漏洞。本文讨论的只是web程序上的漏洞,和其它漏洞,是相对独立的。这句话看似废话,实际上却说明了时常被忽略的因素,即:“很多人认为只要我开发web程序没有漏洞,web服务器就安全了”,事实上,并非如此。一个合格的web程序开发人员,应该时刻清楚自己开发的程序会在什么环境中被使用,以及一旦自己的程序产生某种漏洞,最终会导致什么后果。简单的说,web程序被安装在一台或多台(分布式)web服务器上,一旦安装成功,就等于在为广大用户提供服务的同时,给入侵者打开了一条或N条新的思路。如果服务器管理员刚好对安全配置不了解(事实上,国内这种管理员居多),那么只好由我们的程序来守好最后的关卡最后一道防线。看了本文题目,一定有一部分人会认为,“不就是讲P漏洞么,用得着披着这么厚的包告判装么?”,为了回答这个疑问,我们先看看P和ASP的开发有什么不同吧。在ASP时代(ASP,PHP等语言),开发一套系统往往比修改别人已经写好的系统痛苦的多,因为它们把所有的代码(包括链接数据库的代码、执行SQL语句的代码、控制页面显示的代码)统统都放在中,我们时常会看到如腔友侍下代码块:—–代码来自某ASP SHELL   Function GetFileSize(size)      Dim FileSizeFileSize=size /FileSize=FormatNumber(FileSize,2)If FileSize  1 then  伍吵     GetFileSize=””& FileSize & ” KB”      ElseIf FileSize >1024 thenGetFileSize=””& FormatNumber(FileSize / 1024,2) & ” MB”      ElseGetFileSize=””& Size & ” Bytes”      End IfEnd Function      如果客户的需求变了,要求页面不能使用“”等标签,全部应用“CSS”显示。挂了,把程序员召唤出来,一个一个的改吧。。。注意,这里强调下,特指“召唤程序员”才能改,如果是学美工的,只会HTML、、CSS,完了,这活还干不成。而这些只是简单的页面修改,如果客户今天说,MYSQL服务器承担不了这个数据量,要挂Oracle,可怜的程序员就要在一片一片的代码海洋里寻找执行SQL语句的代码,而每一个文件都可能存放着SQL语句,意味着每一个文件都可能在受SQL注入的威胁。  

而P采用MVC模式分层架构进行开发,就可以把所有的文件分开,根据其用途,分别放在不同的文件夹下(分层),每个文件夹下的文件只负责自己的事情。例如数据访问层的代码就放在数据访问层的文件夹下,业务逻辑层的代码也都放在自己的文件夹下,当显示层(这一层是为了把最终的运算结果显示给用户看)的需求发生变化,就像前面的客户需求,我们只要修改这一层的文件就是了,其他层的代码根本不需要动,而修改者也不需要懂得其它层的代码。代码分层了,意味着漏洞也在跟着分层,我们寻找P漏洞的思路也要跟着分层,才能与时俱进。下面在讲述寻找漏洞的过程中,本文就拿一个简单的分层架构例子来做样板。样板程序的名称为“XX文章系统”,系统使用了STRUTS框架,和安全有关的层分为:“DB层”,这一层存放了链接数据库的字符串,以及JdbcTemplate类,直接访问数据库。因为在java中,执行SQL语句的函数按照返回值可以分为三类,所以在这一层定义了JDBC模版类(JdbcTemplate),每一次使用操作数据库时都要执行这一层的三个方法其中一个。“DAO层(Data Access Object数据访问对象层)”,从安全角度上看,这一层存放了SQL语句(并不执行SQL语句,语句传给DB层执行)。这一层调用“DB层”访问数据库,它只知道“DB层”的存在,不知道数据库的存在。“SERVICE层”,业务逻辑层,因为一个业务的实现,并不是一次数据库访问就可以完成的,所以这一层通过N次调用“DAO层的方法”实现业务逻辑,它只知道“DAO层”的存在,不知道“DB层”和数据库的存在。  “ACTION层”,调用业务逻辑层,根据返回的结果,控制P页面显示。它只知道业务层的存在。这一层是入侵者的攻击平台。“Form层”,把用户POST提交的信息封装成Form对象,经过验证后提交给ACTION层处理。“P层”(显示层),这一层是最终显示给用户看的页面,同时也是入侵者的攻击平台。用户通过访问ACTION层,自动会发生:“ACTION调用SERVICE,SERVICE调用DAO,DAO调用DB,DB执行SQL语句返回结果给DAO,DAO返回给SERVICE,SERVICE返回给ACTION,ACTION把数据显示到P里返回给用户”。有了样板,我们来分析这套程序中可能出现的各种web漏洞。、SQL注入漏洞从SQL注入漏洞说起吧,在web漏洞里,SQL注入是最容易被利用而又更具有危害性的。怎么快速的找到呢?先分析流程,就拿用户查看文章这个流程为例:用户访问一个

action,告诉它用户想看ID为7的文章,这个action就会继续完成前面所说的流程。如果是ASP程序,这就是最容易产生问题的时候,ASP是弱类型,接到参数后不需要转换类型,就和SQL语句连加起来。但是P就不一样,P是强类型的语言,接受有害的参数后:对于GET请求(直接在地址栏访问页面),如果这里要的是int型,即使不懂安全的程序员,也会把它(文章的ID)立刻转换成int,因为这里转换后在后面的处理中会更容易操作,而这时程序就出错了;对于POST请求,如果这里要的是int型,程序会在把它封装成Form对象时,因为自动要进行类型转化,同样发生错误,这两种错误发生后,根本不会访问后面的流程就跳出了,或许这就是P天生的安全性。所以,通常提交的变量是int时,不会发生问题,问题会出现在string参数这里,如果要查看某用户的信息,程序可能会让你提交如下参数:showuser.do?    username=kxlzx。问题来了,因为这里是string类型,所以不懂安全的程序员顶多会判断一下是不是空,就连加成为SQL语句。有漏洞的程序大概会写成这个样子:ACTION的代码: showuser.do      String username = null;username = request.getParameter(“username”);      Service service = new Service();      service.findByUsername(username);得到参数后调用service,service层直接交给了Dao层,dao的代码:      public Object findByUsername(String username){JdbcTemplate jt=new JdbcTemplate();String sql = “select * from Users where username=’”+username”’”;      List list = jt.query(sql);      ……………….}dao调用了DB层的JdbcTemplate,把SQL语句拼好后,传给了JdbcTemplate去执行。不用再看这里的JdbcTemplate,就可以知道里面的代码使用了Statement的executequery()方法执行,导致了SQL注入。分析了这么半天,有读者会问:“难道我要费这么大的力气才能找到漏洞么?”。的确,通常在ASP程序里找注入时的思路就是这样子,但是我们现在是在使用了开发模式分层架构的P程序里,应该按照分层架构的思维去找漏洞。在回答这个问题之前,我们还得绕个弯子,看看怎么在这里预防SQL注入(java始终都是这么优美,它不会直接告诉你答案,而是一层一层的让你拨开云雾)。刚才分析流程,是从正向分析的,从用户输入到产生漏洞,我们在防御的时候,不妨倒过来看看,从DB层入手。JdbcTemplate调用执行SQL语句,可以有两个类供我们选择,一个是Statement,另一个就是预处理的Statement,两者有着效率上和安全上的显著差别。在效率上,只要数据库支持预处理技术(sqlserver,mysql,oracle等都支持,只有少数access等不支持),就会在大量执行SQL语句时增加速度;在安全上,使用预处理,会把接受的参数也经过预处理,从而不会作为SQL语句的一部分执行,而是仅仅作为SQL语句中的参数部分

内容被执行。一旦DB层使用了预处理,DAO层的SQL语句也会发生变化,成为这个样子:      public Object findByUsername(String username){JdbcTemplate jt=new JdbcTemplate();String sql = “select * from Users where username=?”;      List list = jt.query(sql,new Object{username});      ……………….      }这样,SQL注入就和我们的程序几乎无关了,注意我说的是几乎,而不是全部。知道了怎么防御,于是一切在这里变的简单极了,我们应该直接去DB层找到JdbcTemplate,看看代码,一旦使用了Statement,很好,这个系统十有八九有漏洞,下面要做的是使用Editplus搜索“request.getParameter”。没有使用预处理的系统,可能会在action层进行防御,对参数过滤,但总有防御不到的时候,因为战线拉的太长了,每一个action里都可能接受参数并存在漏洞。还有一种情况,系统一部分使用了预处理,一部分没有,这样的情况可能是因为项目赶的比较仓促,人员没有经过正规培训,最后艰难的整合到了一起。这种情况也好办,直接在DAO层搜索(”’)或(’”),这些符号用于和字符串变量连加,拼SQL语句,肯定是这些语句之后的代码使用了Statement。然后再往上层找,看看哪个action调用了这个有问题的dao类,也可能发生SQL注入。即使系统使用了预处理,别忘了,程序给客户使用后,客户有权利去扩展的。程序拿到客户那里,客户有了新的需求,而这个需求又不大,很可能不愿意花钱重新雇人来实现扩展功能,在这个时候也可能出现问题,客户使用自己的程序员扩展AJAX功能,这个程序员因为怕出问题,不敢动源程序,就在web.xml里加了一个servlet,这个servlet直接去调用conn。可怕的事情发生了。所以,我们的搜索漏洞规则中又加上了一条,在非dao层的文件中,搜索“select,update,delete”等字符串。、暴露程序信息漏洞这个漏洞是怎么来的呢?我们需要从异常说起。有经验的入侵者,可以从P程序的异常中获取很多信息,比如程序的部分架构、程序的物理路径、SQL注入爆出来的信息等,这个漏洞很容易防御,却很难快速定位漏洞文件。出现这样漏洞的时候,通常是我们在写代码的时候,少了一些可能性的考虑而导致的。这样的问题都是经验造成的,而寻找漏洞也要通过经验加运气(要有仙缘。。。),我个人技术有限,就不多说了。防御的方法就是在程序中加上“Exception层”,自定义异常,把系统产生的异常统统包装起来,不要放过任何一个可能产生异常的地方。像腾讯的异常就包装的很好“对不起,今天的注册人数已经达到十万,请您明天再来。。。”,废话,日注册量都十万,还让不让人活啦,铁定是程序发生了异常,不敢让各位大大们看到真实的面孔。

1、SQL注入漏洞

从SQL注入漏洞说起吧,在web漏洞里,SQL注入是最容易被利用而又更具有危害性的。怎么快速的找到呢?先分析流程,就拿用户查看文章这个流程为例:用户访问一个action,告诉它用户想看ID为7的文章,这个action就会继续完成前面所说的流程

2、暴露程序信息漏洞

这个漏洞是怎么来的呢?我们需要从异常说起。有经验的入侵者,可以从P程序的异常中获取很多信息,比如程序的部分架构、程序的物理路径、SQL注入爆出来的信息等,这个漏洞很容易防御,却很难快速定位漏洞文件。出现这样漏洞的时候,通常是我们在写代码的时候,少了一些可能性的考虑而导致的。这样的问题都是经验造成的,而寻找漏洞也要通过经验加运气

3、AJAX暴露出来的漏洞

前面讲SQL注入的时候说过的例子就是一个典型的情况,因为大多数网站不是在开发时就拥有Ajax技术的,都是后来看大家都用了,赶时髦加上。但是在加上的同时没有意识到,在web上增加一个文件,就等于扩展了一点攻击面。

4、业务逻辑漏洞

这个词看起来挺抽象的,他和“暴露程序信息漏洞”有很多共同点,看名字就知道,应该是存在于业务逻辑层(service层)的漏洞。这样的漏洞都和程序的运行段漏逻辑有关。

5、XSS漏洞

这个漏洞也影响深远,想要发现这样的漏洞,除了在页面上进行测试外,还要从流程上入手。用户输入有害信息后,信息保存到数据库,从数据库中读出来丢给用户时产生漏洞。也就是说我们有两个过程可以拦截,就是保存到数据库时,和从数据库读出来后交给用户时。最快的方法是直接打开数据库查看数据,如果数据没有经过编码直接放备燃弊进了数据库,那么可能性就有了一半。剩下的一半更简单,在action层搜索转码常用的字符,如果没有,就很容易发现漏洞。即使有,也不用着急,在action层里慢慢找,很可能还有漏网之鱼。

6、页面层的逻辑漏洞

此类漏洞涵盖面很大,仿族包括“暴露不该暴露的数据”、“权限控制的不精确”、“方便客户的同时存在安全隐患”等等。这类漏洞就只能靠着自己的经验,使用系统的每一个细小功能来寻找。

可以历旅在腾讯智慧安全页面申请使用腾讯御点

然后使用这个软件上面的修复漏洞功能

求助服务器被挖矿程序入侵,如何排查

新客户于最近向我们SINE安全公司咨询,说他的服务器经常卡的网站无法打开,远程连接

服务器的慢的要命,有时候PING值都达到之间,还经常掉包,听客户这么一说,一般

会判断为受到了CC+DDOS混合流量攻击,再具体一问,说是机房那面没有受到流量森启肢攻击,这

就有点奇怪了,不是流量攻击,还导致服务器卡,网站无法打开,这是什么攻击?为了解决客

户服务器卡的问题,我们随即安排安全工程师对他的Linux服务器进行了安全检测与安全部署。

 

SSH远程登录客户的Linux服务器,查看当前的进程发现有一个特别的进程占用了百分之100

的CPU,而且会持续不断的占用,我们查了查该进程,发现不是linux的系统进程,我们对进程

的目录进行查看,发现该进程是一个木马进程,再仔细进行安全分析,才确定是目前最新的挖

矿木马病毒,挖的矿分很多种,什么比特币,什么罗门币的,太多太多,看来现在的挖矿技术

扩展到了入侵服务器进行肉鸡挖矿了。

挖矿木马的检测与清除

 

我们在系统的目录下发现了挖矿木马主要是以 Q99.sh命名的文件来控制客户的linux服务器,看

里面写的代码是以root权限运行,并自动启动计划任务,当服务器重启时继续执行计划任务,

导致客户怎么重启都于事无补,还是卡的要命。该木马代码还调用了一些Linux系统命令,bashe

bashd来挖矿,该命令是最直接也是占用CPU到顶峰的关键,太粗鲁了,这样的挖矿本身就会让

客户发现问题,看来挖矿者只顾着赚钱,不考虑长久之道了。

 

挖矿木马还设计了挖矿进程如旁则果被客户强制停止后,会自动启动继续挖矿,达到不间断的挖矿,

仔细检查发现是通过设置了每个小时执行任务计划,远程下载shell挖矿木马,然后执行,检查

当前进程是否存在,不存在就启动挖矿木马,进行挖矿。

对客户的linux服务器进行详细了安全检测发现幸亏没有加密服务器的数据,以及感染蠕虫的病

毒,如果数据被加密那损失大了,客户是做平台的,里面的客户数据很重要,找出挖矿木马后,

客户需要知道服务器到底是如何被攻击的?此世 被上传挖矿木马的? 防止后期再出现这样的攻击

状况。

通过我们安全工程师的安全检测与分析,发现该服务器使用的是apache tomcat环境,平台的开

发架构是P+oracle数据库,apache tomcat使用的是2023年的版本,导致该apache存在严重

的远程执行命令漏洞,入侵者可以通过该漏洞直接入侵服务器,拿到服务器的管理员权限,

SINE安全工程师立即对apache 漏洞进行修复,并清除木马,至此问题得以解决,客户服务器

一切稳定运行,网站打开正常。

去腾讯智袭顷山慧安全申请一个御点终端乎巧全系统

然后去安装腾讯御点,可以修复漏洞和杀毒拍中的

左侧可以看到有个病毒查杀功能,使用这个功能去杀毒

交新手朋友怎么查找服务器漏洞的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于交新手朋友怎么查找服务器漏洞,查找服务器漏洞技巧分享:交新手朋友如何提高安全水平,如何安全检测Java Web应用网站漏洞,求助服务器被挖矿程序入侵,如何排查的信息别忘了在本站进行查找喔。


数据运维技术 » 查找服务器漏洞技巧分享:交新手朋友如何提高安全水平 (交新手朋友怎么查找服务器漏洞)