安全检测检查清单(Web)网站
(一)
检查项:弱锁定机制
优先级:高
检查要点:检查系统帐号锁定机制健壮性
检查方法:
1、尝试使用错误的密码登录5次,查看账户是否被锁定
2、等待10分钟再次测试,确认该用户是否还处于锁定状态
(二)
检查项:认证模式绕过
优先级:高
检查要点:检查是否可以跳过登录页面直接访问,需要认证通过后才能访问的内部网页
检查方法:
可以尝试通过篡改和假装通过验证的手法绕过验证措施,绕过Web应用验证架构的方法有:
1、直接的页面请求
2、参数修改
3、会话ID预测
4、SQL注入
(三)
检查项:密码规则检验/弱口令检查
优先级:高
检查要点:是否可以设置不符合密码规则的口令
检查方法:
1、在目标系统修改密码输入不符合下属密码规则的任意组合字符串,确认密码是否可以修改成功。
密码规则如下:密码至少包含以下四种类别的字符中的三种:
英语大写字母 A, B, C, … Z
英语小写字母 a, b, c, … z
西方阿拉伯数字 0, 1, 2, … 9
非字母数字字符,如标点符号,@, #, $, %, &, *等
另外,口令中不能含有与IP地址、账号名、公司名、人名、生日、记念日期、电话、E-mail等有关的字符
2、依据设置的字典库进行暴力破解(字典库应包括以用户名加连续数字、键盘连续输入等弱口令)
(四)
检查项:目录遍历
优先级:高
检查要点:是否存在目录遍历
检查方法:通过AWVS扫描,查看扫描结果中,是否存在Directory Listing漏洞
(五)
检查项:越权测试
优先级:高
检查要点:检查是否可以用低权限账户访问高权限账户资源或信息
检查方法:
1、使用低权限帐号登录系统
2、使用burpsuite抓取低权限账户的数据访问数据包
3、修改URL参数为高权限账户,重放数据包,查看返回数据是否为高权限帐号所能访问到的资源
(六)
检查项:加密传输
优先级:高
检查要点:检查认证过程中传输是否加密(用户名密码明文传输、敏感数据传输加密)
检查方法:使用浏览器打开应用系统,,输入账号密码登陆系统,使用Fiddler2抓包查看传输数据中是否存在明文密码或简单加密(如:base64、DES等)的密码等信息
(七)
检查项:Web应用密码保存在页面的隐藏域中(会话变量泄露测试)
优先级:高
检查要点:检查登录、验证等页面的隐藏域中是否存在密码信息
检查方法:1、使用Firebug等前端调试工具查看页面源码,检查页面中的<input type="hidden">字段是否存在密码等信息
(八)
检查项:跨站攻击脚本
优先级:高
检查要点:检查各web应用系统是否存在跨站脚本漏洞
检查方法:1、寻找可疑点:通过Web应用扫描工具AWVS的跨站脚本策略检查各web应用系统是否存在跨站脚本漏洞;
2、确认可疑点是否存在跨站:在可疑点的输入点输入双引号尖括号等进行手工验证,也可以输入script、iframe等HTML标签进行尝试确认,查看是否能够回显输入的<script>alert("xss")</script>
(九)
检查项:SQL注入攻击
优先级:高
检查要点:检查是否存在SQL注入
检查方法:
1、寻找可疑点:
使用AWVS扫描器对目标网站进行扫描以找出所有的SQL注入可疑点,对可能存在的注入点进行以下操作;
2、确认可疑点是否存在注入
(1)手工确认:通过在可疑点末尾加上单引号 或者 and、or等逻辑语句,根据页面的输出结果进行判断;
(2)工具确认:如SQLMAP(sqlmap -u url地址), pangolin,havij,阿D
确认是否存在以下情况:
1、是否存在使用 "or"="or" ,'or'='or' ,"or"="or,'or'='or等万能口令登陆情况
2、 对于数字型参数,可使用单引号value’或value and 1=1和value and 1=2进行测试。当使用单引号进行测试时如果服务器端返回SQL错误,或使用value and 1=1和value and 1=2进行测试时,服务端两次返回的内容不一致,则说明存在SQL注入漏洞;
3、 对于字符型参数,可使用单引号value’或value and ‘a’=’a和value and ‘a’=’b进行测试。当使用单引号进行测试时如果服务器端返回SQL错误,或使用value and ‘a’=’a和value and ‘a’=’b进行测试时,服务端两次返回的内容不一致,则说明存在SQL注入漏洞;
(九)
检查项:命令执行注入
优先级:高
检查要点:检查是否存在命令注入漏洞
检查方法:
1、寻找可疑点:
使用AWVS扫描器对目标网站进行扫描,并生成扫描报告。
2、手工确定可疑点是否存在命令注入漏洞。
对Linux系统,在参数化URL末尾加上|%20cat%20/etc/passwd
对Windows系统,在参数化URL末尾加上;echo test
(十)
检查项:任意文件上传
优先级:高
检查要点:是否存在任意文件上传
检查方法:
1、使用AWVS扫描器对目标网站进行扫描以找出所有的上传可疑点,对可能存在的上传点进行以下操作;
2、尝试直接上传木马(webshell或者脚本文件)
3、尝试绕过限制进行上传,例如进行拦截改包、解析漏洞等。(可使用BurpSuite等工具)
4、判断服务器后台是否做了上传文件格式限制
(例:
文件名大小写绕过:例如AsP、pHp、JSp等;
黑名单绕过:例如asa、cer等;
FCKEditor上传php2、php4、inc、pwml、asa、cer等格式;
截断绕过:1.php[\0].jpg,test.asp%00.jpg截断绕过
解析漏洞
II6:上传1.asp;1.jpg格式的文件;
Nginx下的PHP CGI解析漏洞,上传1.jpg文件,然后访问http://website.com/1.jpg/1.php,1.jpg文件可能会以php文件执行;
Apache上传绕过:phpshell.php.rar.rar.rar.rar)
(十一)
检查项:任意文件下载
优先级:高
检查要点:是否存在任意文件下载
检查方法:
1、通过扫描器AWVS扫描发现任意文件下载漏洞的URL
2、 更改参数的值为其他路径和文件进行验证,在浏览器地址栏中尝试以下URL
对于UNIX/Linux服务器可以尝试下载/etc/passwd;http://www.exmaple.com/viewfile.do?filename=../etc/passwd
http://www.exmaple.com/viewfile.do?filename=../../etc/passwd
http://www.exmaple.com/viewfile.do?filename=../../../etc/passwd
http://www.exmaple.com/viewfile.do?filename=../../../../etc/passwd
http://www.exmaple.com/viewfile.do?filename=../../../../../etc/passwd
……
对于Windows服务器可以尝试下载
http://www.exmaple.com/viewfile.do?filename=c:\boot.ini文件
观察页面返回信息,如果可以获取到passwd或boot.ini文件,则说明漏洞存在
(十二)
检查项:任意密码重置或任意账号注册
优先级:高
检查要点:是否存在任意账号密码重置或注册漏洞
检查方法:
情况一:
1、在账号密码重置页面输入测试手机号,点击获取验证码
2、使用burpsuite抓取验证码请求包,修改获取手机号为另一个测试手机号
3、将获取的验证码填入验证码进入下一步重置密码页面
情况二:
1、在密码重置页面随意输入验证码
2、使用burpsuite抓取验证码验证后的返回包,查看返回包是否存在校验值如“type=1”,将1修改为0
3、放行返回包,看是否成功进入下一步重置密码页面
(十三)
检查项:越权
优先级:高
检查要点:是否存在任越权行为
检查方法:
1、管理员账号、普通账号分别用不同浏览器登录,将管理员账号有权限查看的URL复制黏贴到普通账号下访问
2、分别用不同浏览器登录两个普通账号,将A账号权限下可查看操作的页面URL(比如A账号的个人信息)复制到B账号下访问
(十四)
检查项:Struts2漏洞
优先级:高
检查要点:是否存在Struts2远程代码执行漏洞
检查方法:
1、查看各检查系统是否使用Struts2框架
2、使用K8_Struts2_EXP工具进行检查、验证,查看工具是否成功执行系统命令
(十五)
检查项:CSRF
优先级:中
检查要点:检查应用系统是否存在跨站请求伪造漏洞
检查方法:检查业务系统是否采用了token验证机制
(十六)
检查项:应用程序报错页面中泄漏敏感信息
优先级:中
检查要点:检查报错页面是否含有系统后台信息、错误代码、版本号等信息
检查方法:
1、使用AWVS等扫描工具扫描网站
2、查看扫描结果中Http请求返回码为500的页面
(十七)
检查项:错误处理测试
优先级:中
检查要点:应用程序报错中泄漏敏感信息
检查方法:检查报错是否含有系统信息、错误代码、版本号等信息
(十八)
检查项:目录遍历
优先级:中
检查要点:是否存在目录遍历
检查方法:
1)通过AWVS扫描,查看扫描结果中,是否存在Directory Listing漏洞
2)使用目录扫描工具扫描目标
3)利用浏览器打开漏洞链接,验证前面两种扫描结果,是否可以成功浏览目录
安全检测检查清单(Web)网站的更多相关文章
- C#不用union,而是有更好的方式实现 .net自定义错误页面实现 .net自定义错误页面实现升级篇 .net捕捉全局未处理异常的3种方式 一款很不错的FLASH时种插件 关于c#中委托使用小结 WEB网站常见受攻击方式及解决办法 判断URL是否存在 提升高并发量服务器性能解决思路
C#不用union,而是有更好的方式实现 用过C/C++的人都知道有个union,特别好用,似乎char数组到short,int,float等的转换无所不能,也确实是能,并且用起来十分方便.那C# ...
- zabbix 监控web网站性能
一直在纠结用什么实例来给大家演示呢?想来想去还是官方的好,那我们怎么用zabbix监控web性能和可用性呢?我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 ...
- 通过JS语句判断WEB网站的访问端是电脑还是手机
通过JS语句判断WEB网站的访问端是电脑还是手机,以显示不同的页面! 目录腾讯网的适配代码如何判断访问网站的机器类型-如何判断ipadJS 判断浏览器客户端类型(ipad,iphone,android ...
- Web网站的性能测试工具
随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生服务器 ...
- WEB网站常见受攻击方式及解决办法
一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是 ...
- 【转】WEB网站常见受攻击方式及解决办法
一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是 ...
- SElinux解决web网站无法访问
SElinux解决web网站无法访问工具/原料centos 6.5系统httpd web服务器 SELinux 设置为enforcing:强制模式,代表 SELinux 运作中 方法/步骤1. 1se ...
- 自学Zabbix4.3 zabbix实战监控Web网站性能
自学Zabbix4.3 zabbix实战监控Web网站性能 用zabbix如何监控web性能和可用性呢?一般分为四个步骤:打开网站.登陆.登陆验证.退出,看实例. 1. 检测流程 1. 打开网站:如果 ...
- ASP.NET Visual Studio2010 发布Web网站问题详解
今天研究了一下如何发布web网站,之前总是没耐心,遇到点问题就没心情搞了,今天总算有点耐心搞明白了.其实遇到的问题还是挺多的,网上也没有太全的解释,所以结合自己还有别人的方法进行一下总结. 环境:Wi ...
随机推荐
- Java语言中的正则表达式
正则表达式是什么? 正则表达式是一种强大而灵活的文本处理工具.初学正则表达式时,其语法是一个难点,但它确实是一种简洁.动态的语言.正则表达式提供了一种完全通用的方式,能够解决各种字符串处理相关的问题: ...
- P1015 高精度乘法
题目描述 给你两个很大的正整数A和B,你需要计算他们的乘积. 输入格式 输入一行包含两个正整数A和B,以一个空格分隔(A和B的位数都不超过 \(10^4\)) 输出格式 输出一行包含一个整数,表示A和 ...
- AI百度接口以及图灵接口的使用
百度AI接口 AI智能种类方向 耳朵 = 倾听 = 麦克风 = 语音识别 ASR:Automatic Speech Recognition 嘴巴 = 诉说 = 扬声器 = 语音合成 TTS:Text ...
- es6笔记 day2---函数默认参数、箭头函数、剩余参数
函数变化: 1.函数默认参数 2.函数参数默认是已经定义了,不能再使用let.const声明 3.扩展运算符.rest运算符 ...就是扩展运算符,它的作用就是把数组给展开 结合函数使用传参,也可以将 ...
- dll中全局变量在外部进行引用
在Windows中实际导出全局变量,您必须使用类似于export / import语法的语法,例如: #ifdef COMPILING_THE_DLL #define MY_DLL_EXPORT ex ...
- LuoguP1402 酒店之王
LuoguP1402 酒店之王 最大流题目.带有一定的思维技(tao)巧(lu) 依旧分析题目.如果只有房间或者菜一种限制.那么就是一道裸的最大流了 可是两种条件都应当满足, 这貌似也可以做. 因为每 ...
- 数据库java包
package com.hgkj.model.dao.impl; import java.sql.*; public class DBManager { private static final St ...
- KETTLE4个工作中有用的复杂实例--1、数据定时自动(自动抽取)同步作业
今天呕心沥血花了8个小时给大家带来kettle工作中最常见的四种复杂实例,90%的项目用到这4种实例都可以解决. 4种实例种还有2种通用kettle工具,使用这两种通用工具实例,可以直接修改相应的配置 ...
- boostrap-非常好用但是容易让人忽略的地方【2】:row
row是非常好用但是却非常容易忽略的地方. 想实现内部元素相对父级的padding=0,则在父子中间加个row.如下图 列嵌套也是同样的道理 经验之谈:学会row的用法,在手机版布局的时候会很方便,否 ...
- MySQL中的CHAR和VARCHAR到底支持多长?
最近在研究MySQL的数据类型,我们知道,选择合适的数据类型和数据长度对MySQL的性能影响是不可忽视的,小字段意味着可以MySQL可以读取更多的记录,从而加快查询速度. 网上该问题的答案有很多版本, ...