Web 常见漏洞
检测到目标URL存在http host头攻击漏洞
描述:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER["HTTP_HOST"]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。
解决办法
web应用程序应该使用SERVER_NAME而不是host header。
在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。
检测到目标站点可能存在跨站请求伪造漏洞
描述:跨站请求伪造(CSRF)漏洞是指攻击者通过其他方法(如社会工程学),诱导web应用的合法授权用户在不知情的情况下执行攻击者预期的操作。成功的跨站请求伪造攻击可造成攻击者以其他用户的权限执行指定的操作,如修改用户数据,窃取用户信息等等。
跨站请求伪造攻击的严重性依赖于被攻击用户的权限和目标web应用的具体业务。
解决方法
对于重要操作,建议采用POST方法替代GET方法,可有效提高攻击者利用的难度。 或者在表单中增加csrf验证字段或验证码,并在完成操作前给予用户提示信息。 在服务器端增加Referer请求字段的验证。
检测到目标URL启用了不安全的HTTP方法
描述:检测到目标Web服务器配置成允许下列其中一个(或多个)HTTP 方法:DELETE, SEARCH,COPY,MOVE, PROPFIND, PROPPATCH, MKCOL ,LOCK ,UNLOCK 。
这些方法表示可能在服务器上使用了 WebDAV。由于dav方法允许客户端操纵服务器上的文件,如果没有合理配置dav,有可能允许未授权的用户对其进行利用,修改服务器上的文件。
解决方法
修改WEB应用的web.xml部署文件。在里面插入下面几行代码就搞定了,把需要屏蔽的方法加在里面。如果应用包比较多也没必要一个个改,直接修改Tomcat的web.xml就可以了,这样在Tomcat中运行的实例都会有效。
<security-constraint>
<web-resource-collection>
<web-resource-name>baseproject</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint></auth-constraint>
</security-constraint>
<security-constraint>
用于限制对资源的访问;
<auth-constraint>
用于限制那些角色可以访问资源,这里设置为空就是禁止所有角色用户访问;
<url-pattern>
指定需要验证的资源
<http-method>
指定那些方法需要验证
检测到目标服务器启用了OPTIONS方法
描述:OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。OPTIONS方法可能会暴露一些敏感信息,这些信息将帮助攻击者准备更进一步的攻击。
解决方法
修改web.xml文件的协议
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
在web.xml添加如下代码
<security-constraint>
<web-resource-collection>
<web-resource-name>baseproject</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
<description>baseproject</description>
<role-name>All Role</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
检测到目标服务器存在应用程序错误
描述:如果者通过伪造包含非应用程序预期的参数或参数值的请求,来探测应用程序(如以下示例所示),那么应用程序可能会进入易受的未定义状态。 者可以从应用程序对该请求的响应中获取有用的信息,且可利用该信息,以找出应用程序的弱点。
例如,如果参数字段应该是单引号括起来的字符串(如在 ASP 脚本或 SQL 查询中),那么注入的单引号将会提前终止字符串流,从而更改脚本的正常流程/语法。
错误消息中泄露重要信息的另一个原因,是脚本编制引擎、Web 服务器或数据库配置错误。
以下是一些不同的变体:
[1] 除去参数
[2] 除去参数值
[3] 将参数值设置为空值
[4] 将参数值设置为数字溢出(+/- 99999999)
[5] 将参数值设置为危险字符,如 ' " ' " ) ;
[6] 将某字符串附加到数字参数值
解决方法
[1] 检查入局请求,以了解所有预期的参数和值是否存在。 当参数缺失时,发出适当的错误消息,或使用缺省值。
[2] 应用程序应验证其输入是否由有效字符组成(解码后)。 例如,应拒绝包含空字节(编码为 %00)、单引号、引号等的输入值。
[3] 确保值符合预期范围和类型。 如果应用程序预期特定参数具有特定集合中的值,那么该应用程序应确保其接收的值确实属于该集合。 例如,如果应用程序预期值在 10..99 范围内,那么就该确保该值确实是数字,且在 10..99 范围内。
[4] 验证数据属于提供给客户端的集合。
[5] 请勿在生产环境中输出调试错误消息和异常。
点击劫持:X-Frame-Options未配置
描述:点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。
HTTP 响应头信息中的X-Frame-Options,可以指示浏览器是否应该加载一个 iframe 中的页面。如果服务器响应头信息中没有X-Frame-Options,则该网站存在ClickJacking攻击风险。网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面嵌入从而防止点击劫持。
解决方法
Nginx:
配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:
add_header X-Frame-Options SAMEORIGIN;
Apache:
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中:
1、打开httpd.conf 找到LoadModule headers_module modules/mod_headers.so模块,去掉前面的# 号 启用该模块
2、在此处加上 Header always append X-Frame-Options SAMEORIGIN
<IfModule headers_module>
RequestHeader unset DNT env=bad_DNT
Header always append X-Frame-Options SAMEORIGIN
</IfModule>
检测到目标URL存在电子邮件地址模式
描述:Spambot 搜寻因特网站点,开始查找电子邮件地址来构建发送自发电子邮件(垃圾邮件)的邮件列表。如果检测到含有一或多个电子邮件地址的响应,可供利用以发送垃圾邮件。而且,找到的电子邮件地址也可能是专用电子邮件地址,对于一般大众应是不可访问的。
解决方法
从 Web 站点中除去任何电子邮件地址,使恶意的用户无从利用。
jQuery 存在 XSS 漏洞
描述:jQuery 是一个 JavaScript 库。 jQuery 在过滤用户输入数据时,所使用的正则表达式存在缺陷,可能导致 location.hash 跨站漏洞。
解决方法
升级jquery版本
泄露软件版本信息
描述:在浏览器里面泄露程序错误处理信息或软件版本等信息,可能导致进一步的攻击。
解决方法
隐藏apache版本信息:
开启 httpd.conf,加入以下两行:
ServerTokens ProductOnly
ServerSignature Off
隐藏Nginx版本信息:
开启 nginx.conf,在http { }里加上:
server_tokens off;
Web 常见漏洞的更多相关文章
- Web常见漏洞修复建议
一.SQL注入修复建议 1.过滤危险字符,例如:采用正则表达式匹配union.sleep.and.select.load_file等关键字,如果匹配到则终止运行. 2.使用预编译语句,使用PDO需要注 ...
- 手工挖掘web常见漏洞时的一些经验总结
一.前提: 漏洞挖掘原则 所有变量 所有头 cookie中的变量 逐个变量删除 漏洞的本质 数据与指令的混淆 对用户输入信息过滤不严判断失误,误将数据当指令 二.经典漏洞: 1.身份认证 常用弱口令/ ...
- 常见 WEB 安全漏洞(转)
SQL注入 成因:程序未对用户的输入的内容进行过滤,从而直接代入数据库查询,所以导致了sql 注入 漏洞 . 思路:在URL处可以通过 单引号 和 and 1=1 and 1=2 等语句进行手工测试s ...
- Web中间件 - 常见漏洞总结
*文章来源:https://blog.egsec.cn/archives/472 *本文将主要说明:Web中间件常见漏洞的产生原因以及修复方案 什么是Web中间件? 百度百科是这样解释的:中间件是介于 ...
- 【OWASP TOP10】2021年常见web安全漏洞TOP10排行
[2021]常见web安全漏洞TOP10排行 应用程序安全风险 攻击者可以通过应用程序中许多的不同的路径方式去危害企业业务.每种路径方法都代表了一种风险,这些风险都值得关注. 什么是 OWASP TO ...
- 常见web中间件漏洞(四)Tomcat漏洞
这部分好久没写了,继续更新web中间件漏洞思路整理(不复现) ,争取...整理完 前几篇指路链接: nginx: https://www.cnblogs.com/lcxblogs/p/13596239 ...
- [web安全]Web应用漏洞攻击分析与防范
网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...
- Windows XP与Windows 7系统常见漏洞
1.Windows XP系统常见漏洞 Windows XP系统常见的漏洞有UPNP服务漏洞.升级程序漏洞.帮助和支持中心漏洞.压缩文件夹漏洞.服务拒绝漏洞.Windows Media Player漏洞 ...
- Android常见漏洞
Android常见漏洞 漏洞名称: Log敏感信息泄露 漏洞描述: 程序运行期间打印了用户的敏感信息,造成泄露 修改建议: 建议禁止隐私信息的log 漏洞名称: web https校验错误忽略漏洞 漏 ...
随机推荐
- CodeForces 1409E Two Platforms
题意 有 \(n\) 个点,分别位于 \((x_i,y_i)\),求最多能用两个长度为 \(k\) 的平台接住多少个点. \(\texttt{Data Range:}n\leq 2\times 10^ ...
- [Luogu P2827] 蚯蚓 (巧妙的模拟)
题面: 传送门:https://www.luogu.org/problemnew/show/P2827 Solution 看到这题,我们肯定会有一个大胆想法. 那就是直接用堆模拟这个过程. 对于q,我 ...
- 【应用程序见解 Application Insights】Application Insights 使用 Application Maps 构建请求链路视图
Applicaotn Insigths 使用 Application Maps 构建请求链路视图 构建系统时,请求的逻辑操作大多数情况下都需要在不同的服务,或接口中完成整个请求链路.一个请求可以经历 ...
- 【kata Daily 190905】What's a Perfect Power anyway?(完美幂)
原题: A perfect power is a classification of positive integers: In mathematics, a perfect power is a p ...
- node转发请求 .csv格式文件下载 中文乱码问题 + 文件上传笔记
用户无法直接访问后台接口 需要node端转发请求 并将数据以.csv文件格式生成以供客户端下载. 很不幸出现了中文乱码的问题 挖了各种坟帖,下了各种依赖包,csv.json2csv.bufferHel ...
- leetcode148two-sum
Given an array of integers, find two numbers such that they add up to a specific target number. The ...
- Spring5.0源码学习系列之浅谈BeanFactory创建
Spring5.0源码学习系列之浅谈BeanFactory创建过程 系列文章目录 提示:Spring源码学习专栏链接 @ 目录 系列文章目录 博客前言介绍 一.获取BeanFactory主流程 二.r ...
- Windows自带MD5 SHA1 SHA256命令行工具
感恩大佬LiuYanYGZ的文章 MyHash 检验工具http://www.zdfans.com/html/4346.html HashMyFiles Hash校验工具http://www.nirs ...
- binary hacks读数笔记(dlopen、dlsym、dlerror、dlclose)
1.dlopen是一个强大的库函数.该函数将打开一个动态库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.比如 Apache Web 服务器利用这个函数在运行过程中加载 ...
- python之深浅copy与id
我们都知道 所谓变量就是就是在空间中开辟一块内存空间.来存放东西的 学过c语言的都知道而数组也是有内存地址的 我们如何来查看内存地址呢?id()这函数就来了 x = 5 print(id(x)) 如此 ...