文档中心 > 聚石塔

安全漏洞FAQ

更新时间:2015/09/18 访问次数:76804

请根据以下列表查看安全漏洞修复方法(不断更新中)

1)	IIS PUT安全漏洞
漏洞描述:
攻击者可以使用HTTP的PUT方法推送任意文件到Web服务器;
安全隐患:
允许黑客远程推送任意文件到Web服务器,包括Webshell;
修复方案:
1、关闭IIS的WebDev服务,启动“IIS管理器”,展开本地计算机,选择“Web服务扩展”,右键WebDAV,点击禁用;
2、关闭网站写权限,展开本地计算机,选择“网站”,对每一个网站,右键选择属性,在主目录选项卡,取消写入选项的勾,并重启网站;
3、	重启IIS服务器;

2)	任意文件下载安全漏洞
漏洞描述:
没有经过身份识别可随意下载文件
安全隐患:
该漏洞可让攻击者随意下载服务器上的任意文件
修复方案:
限制文件download函数读取的文件,或者读取文件名非用户可控

3)	任意文件上传安全漏洞
漏洞描述:
没有经过身份识别可随意上传文件
安全隐患:
该漏洞可让攻击者随意上传服务器上的任意文件
修复方案:
添加上传页面的认证,过上传内容进行过滤

4)	任意文件读取安全漏洞
漏洞描述:
没有经过身份识别可随意读取文件
安全隐患:
该漏洞可让攻击者随意读取服务器上的任意文件
修复方案:
限制文件读取函数读取的文件,或者读取文件名非用户可控

5)	目录遍历安全漏洞
漏洞描述:
1、如果必须开启该目录的目录列表功能,则应对该目录下的文件进行详细检查,确保不包含敏感文件。
2、如非必要,请重新配置WEB服务器,禁止该目录的自动目录列表功能。
安全隐患:攻击者可以任意浏览目录结构,容易下载到敏感信息
修复方案:
1. Apache禁止列目录:
     方法一,修改 httpd.conf配置文件,查找 Options Indexes FollowSymLinks,修改为 Options -Indexes; 
     方法二,在www 目录下的修改.htaccess 配置文件,加入 Options -Indexes。 (推荐)
2. Tomcat 禁止列目录:
     在Tomcat的conf/web.xml文件里把listings值改为false。
PS:修改完httpd.conf后,一定记得重启web服务,才能生效噢!
3. IIS中关闭目录浏览功能:在IIS的网站属性中,勾去“目录浏览”选项,重启IIS;

6)	struts2安全漏洞
漏洞描述:
攻击者可以提交恶意构造语句,并交由服务器端执行。
安全隐患:
这段代码允许黑客远程执行恶意代码,并在服务器上部署后门。
修复方案:
升级struts到2.3.16.1,并重启Web服务器。

7)	struts debug模式安全漏洞
漏洞描述:
用户打开了struts调试模式
安全隐患:
可以让攻击者得到服务器的敏感信息
修复方案:
struts.xml设置
 
 
  
  

8)	SQL注入安全漏洞
漏洞描述:
SQL注入是由于程序中对使用到的sql没有做到数据和结构分离导致程序的sql能被恶意用户控制,从而引发的数据库信息泄漏,修改,服务器被入侵等一系列严重后果。
安全隐患:
数据库信息泄露或被修改,还有可能威胁服务器的安全。
修复方案:
根据SQL语句,查找代码中的注入点(SQL语句拼接时包含可能从get参数/post参数中得到的变量,导致SQL注入), 使用参数化查询避免SQL注入;
参考文档://open.taobao.com/doc/detail.htm?spm=0.0.0.0.yPXkfW&id=813#ss3

9)	shopEx本地文件读取安全漏洞
漏洞描述:
没有经过身份识别可随意读取文件
安全隐患:
该漏洞可让攻击者随意读取服务器上的任意文件
修复方案:
web应用程序升级到最新版

10)	shopadmin任意文件读取安全漏洞
漏洞描述:
	没有经过身份识别可随意读取文件
安全隐患:
	该漏洞可让攻击者随意读取服务器上的任意文件
修复方案:
	升级到最新版本的shopadmin

11)	php代码注入安全漏洞
漏洞描述:
网站被写如后门,直接沦为肉鸡。
安全隐患:
根据漏洞参数定位问题函数,进行过滤。
修复方案:
	在PHP中可以执行代码的函数。如eval()、assert()、``、system()、exec()、shell_exec()、passthru()、 escapeshellcmd()、pcntl_exec() 等由于程序使用以上个别函数,并从客户端获取输入,如未正确处理,极可能导致代码执行漏洞。

12)	phpmyadmin setup.php代码注入安全漏洞
漏洞描述:
phpMyAdmin是用PHP编写的工具,用于通过WEB管理MySQL。
安全隐患:
	phpMyAdmin的Setup脚本用于生成配置。如果远程攻击者向该脚本提交了特制的POST请求的话,就可能在生成的config.inc.php配置文件中包含任意PHP代码。由于配置文件被保存到了服务器上,未经认证的远程攻击者可以利用这个漏洞执行任意PHP代码。
修复方案:
	升级到最新版本的phpmyadmin

13)	openssl安全漏洞
漏洞描述:
OpenSSL软件存在“心脏出血”漏洞,该漏洞使攻击者能够从内存中读取多达64 KB的数据,造成信息泄露。
安全隐患:
	可被用来获取敏感数据,包括会话Session、cookie、账号密码等。
修复方案:
第一步:
Debian/Ubuntu:
# apt-get update
# apt-get install openssl libssl1.0.0
CentOS/Redhat/Fedora:
# yum update openssl
openSUSE:
# zypper in -t patch openSUSE-2014-277
如果没有源或者不想从源安装,请手工将OpenSSL升级至1.0.1g版本
第二步:
修复完毕后,请重启WEB服务,Apache/Nginx/Httpd的重启方式分别如下:
# /etc/init.d/apache2 restart
# /etc/init.d/ngnix restart
# /etc/init.d/httpd restart
还需要重启其他与OpenSSL相关的服务。(可通过 lsof | grep libssl | awk '{print $1}'| sort | uniq 查看与OpenSSL库相关的服务)。
重启完毕后,可以通过上面的检查框进行验证。

14)	nginx文件解析安全漏洞
漏洞描述:
	攻击者可以文件解析漏洞,指定任意文件作为PHP文件进行执行;
安全隐患:
	恶意攻击者可以通过上传图片或TXT格式的文件,在文件中注入PHP代码,从而达到执行恶意代码的目的;
修复方案:
	修改php配置文件,设置cgi.fix_pathinfo为0;
或者
在nginx配置文件中添加
if ( $fastcgi_script_name ~ ..*/.*php ) {
return 403;
}

15)	jmx-console无认证访问安全漏洞
漏洞描述:
	攻击者没有经过认证便可访问jmx-console页面
安全隐患:
	攻击者可以未经验证进行敏感操作
修复方案:
1.升级JBoss到最新的版本 
2.删除 $JBOSS_HOME/[server]/all/deploy 和$JBOSS_HOME/[server]/default/deploy下的Jmx-console.war 、Web-console.war这两个.War文件来禁止对Jmx-console和Web-console的访问

16)	jboss远程代码执行安全漏洞
漏洞描述:
	由于开发人员编写源码,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。
- 收起
由于jboss未对/invoker/JMXInvokerServlet以及/invoker/EJBInvokerServlet这两个servlet的请求做验证,导致能够远程部署任意war包。
安全隐患:
	这段代码允许黑客远程部署恶意war包,生成jsp后门文件,从而远程执行任意系统命令
修复方案:
	限制文件读取函数读取的文件,或者读取文件名非用户可控

17)	FTP匿名登入安全漏洞
漏洞描述:
FTP Server允许匿名登录(使用ftp或者anonymous用户,密码为空)。
安全隐患:
	可能会泄漏一些敏感信息。
修复方案:
	配置FTP Server为禁止匿名登录。以vsftp2.2.0为例,需按照如下说明修改配置文件:
(1)将anonymous_enable值改为为NO(如果没有这一行,加上anonymous_enable=NO即可)。
(2)添加local_enable=YES(开启本地用户访问)。

18)	mysql弱口令安全漏洞
漏洞描述:
	mysql登陆密码过于简单
安全隐患:
	密码容易被攻击者猜测到或被破解工具破解
修复方案:
	更改密码,并达到一定的复杂度。

19)	tomcat弱口令安全漏洞
漏洞描述:
tomcat登陆密码过于简单
安全隐患:
	密码容易被攻击者猜测到或被破解工具破解
修复方案:
	更改密码,并达到一定的复杂度。

20)	mangodb弱口令安全漏洞
漏洞描述:
	mangodb登陆密码过于简单
安全隐患:
	密码容易被攻击者猜测到或被破解工具破解
修复方案:
	更改密码,并达到一定的复杂度。

21)	URL安全漏洞
漏洞描述:
	未经授权及身份识别可查看或下载敏感信息
安全隐患:
	攻击者可在未授权情况下获得大量敏感信息
修复方案:
	1、增加权限验证(验证登录中的cookie),所有接口必须登录后才可以调用。
2、之前使用session等方式验证的url,需要把验证字段使用cookie传送,不能在get请求中传送。
3、所有excel文件不许直接可以下载  需要使用php或者aspx读取下载  然后在这个读取页面里面加上权限验证。
4、callback类型的url,请在与taobao进行oauth交互的时候,将淘宝返回的token和nick写入用户浏览器的cookie中,然后在该url中验证cookie登陆情况。

22)	WebShell入侵安全漏洞
漏洞描述:
	攻击者留下了恶意后门
安全隐患:
攻击者可以通过恶意后门掌控服务器
修复方案:
	1、重置机器(止损,黑客已控制整个服务器);
2、操作系统密码更新;
3、部署干净的应用代码,不允许直接拷贝原应用的老代码和缓存数据(代码部署前,手动开启云盾进行扫描一遍);
4、服务器中所有站点的所有密码更新,并确保为强密码;
5、确保云盾升级为最新版,开启全盘扫描
6、数据库密码更新,并确保为强密码;
7、机器上如果有调用topapi,则必须更换top api 的secret,防止数据泄露;
8、确保机器和原来老机器配置相同的外网端口限制策略。

23)	RDS安全漏洞
漏洞描述:
SQL注入是由于程序中对使用到的sql没有做到数据和结构分离导致程序的sql能被恶意用户控制,从而引发的数据库信息泄漏,修改,服务器被入侵等一系列严重后果。
安全隐患:
	数据库信息泄露或被修改,还有可能威胁服务器的安全。
修复方案:
	对程序中使用到的SQL语句,使用变量绑定的方式进行数据和结构的分离。
1、JSP代码
问题代码示例:
HttpServletRequest request, HttpServletResponse response) {
JdbcConnection conn = new JdbcConnection();
final String sql = "select * from product where pname ='"
+ request.getParameter("pname") + "'";
conn.execqueryResultSet(sql);
修复范例:
com.mysql.jdbc.Connection conn = db.JdbcConnection.getConn();
final String sql = "select * from product where pname = ?";
java.sql.PreparedStatement ps = (java.sql.PreparedStatement) conn.prepareStatement(sql);
ps.setObject(1, request.getParameter("pname"));
ResultSet rs = ps.executeQuery();
 
2、PHP代码
问题代码示例:

 
修复范例:
prepare($sql); 
$stmt->execute(array(':id'=>$id));

漏洞类型与修复方案持续更新中。
 
 
 

FAQ

关于此文档暂时还没有FAQ
返回
顶部