一个安全测试的CheckList

1.        不登录系统,直接输入登录后的页面的URL是否可以访问;

2.        不登录系统,直接输入下载文件的URL是否可以下载文件;

如输入:http://url/download?name=file是否可以下载文件file

3.        退出登录后,后退按钮能否访问之前的页面;

4.        ID/密码验证方式中能否使用简单密码;

如密码标准为6位以上,字母和数字的组合,不包含ID,连接的字母或数字不能超过n位

5.        ID/密码验证方式中,同一个帐号在不同的机器上不同时登录

6.        ID/密码验证方式中,连续数次输入错误密码后该帐户是否被锁定

7.        重要信息(如密码,身份证,信用卡号等)在输入或者查询时是否明文显示;

在浏览器地址栏中输入命令javascript:alert(doucument.cookie)时是否有重要信息;

在html源码中能否看到重要信息;

8.        手动更改URL中的参数值能否访问没有权限访问的页面。

如普通用户对应的URL中的参数为l=e,高级用户对应的URL中的参数为l=s,以普通用户的身份登录系统后将URL中的参数e改为s来访问没有权限访问的页面

9.        URL里不可修改的参数是否可以被修改;

10.        上传与服务器端语言(jsp,asp,php)一样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行

11.        注册用户时是否可以以‘--’or1=1—等做为用户名

12.        传送给服务器的参数(如查询关键字,URL中的参数等)中包含特殊字符(‘.’and1=1--.‘and1=0--.’.‘or 1=0--)时是否可以正常处理

13.        执行新增操作时,在所有的输入框中输入脚本标签(<script>alert(“”)</script>)后能否保存;

14.        新增或修改重要信息(密码,身份证号码,信用卡号等)时是否有自动完成功能

(在form标签中使用autocomplete=0来关闭自动完成功能)

15.        在URL中输入下面的地址是否可以下载

http://url/download.jsp?file=c:windowssystem32driversetchosts,http://url/download.jsp?file=/etc/password

16.        是否对session的有效期进行处理

17.        错误信息中是否含有SQL语句,SQL错误信息以及web服务器的绝对路径的等

sql注入:
1.可以把一个接口理解为一个sql 语句
2.比如一个密码登录的post请求。就可以想象为执行了一条
select *from user where name= “user” and password=“123”
在代码中#表示注释的意思
select *from user where name= “user” # and password=“111”
相当于 #后面的都被注释了 执行的sql语句为
select *from user where name= “user” 
Mysql 中还有一种注释方式  —  等同于#
这两种方式 都相当于 输入个错误的密码或者不输入密码就可以登录上user的账号。

8:验证XSS跨站脚本漏洞,执行新增操作时候,要在所有输入框中输入
9.对文件上传功能应使用文件类型限制,或exe等可执行文件后,确认在服务器端是否可直接运行。

10:验证上传漏洞,只要Web应用程序允许上传文件,那就有可能存在文件上传漏洞。因为有些程序
没有对上传的文件进行格式验证,或者纯粹只在客户端做JS验证,攻击者可以通过firebug删除客户端
的javascript验证,或者通过Burp Suit按正常的流程通过JavaScript验证,然后在传输的http层做手脚。

11.错误信息中是否含有SQL语句,SQL错误信息以及web服务器的其他敏感信息。

12:验证Session的有效期。

原文地址:https://www.cnblogs.com/wangxiaoqun/p/10108216.html