安全测试
前言
- 不做文字的搬运工,多做灵感性记录
- 这是平时学习总结的地方,用做知识库
- 平时看到其他文章的相关知识,也会增加到这里
- 随着学习深入,会进行知识拆分和汇总,所以文章会随时更新
- 参考的文章过多,所以参考会写不全,见谅
进行安全测试的,是需要专业的攻防技术的,这里只是做个基础了解,以后还看专攻方向
1.Web安全测试
1.基本安全测试
-
各种登陆模式的安全性验证、对口令各种要求的测试
-
用户权限(如更能限制、数据访问限制等)的验证
-
cookies 和 Session 的有效期验证等多种机制的验证
-
敏感数据加密、数据存储安全性的验证
-
验证系统的日志文件是否得到保护
-
测试软件不会因在异常条件下错误而导致不安全状态
-
其他安全漏洞的检查,如WSDigger扫描
-
get方式在URL后输入如
name=<script>alter(123456)</script>
,若弹出告警框,说明存在跨站漏洞;查看源文件中若包含完整的字符串<script>alter(123456)</script>
,则不管有没有弹出告警框,都表明存在跨站点脚本漏洞 -
post 方式在表单的文件框中输入
<script>alter(123456)</script>
,若弹出警告或者查看源代码中存在输入的字符串则存在漏洞 -
SQL注入
sql='select yhm,mm from users where username=' 如用户名中输入admin'--后,不输入密码也能登录
-
2.认证测试
- 登录页面是否存在验证码,不存在说明存在漏洞
- 验证码和用户名、密码是否一次性、同时提交给服务器验证,如果分开提交,则存在漏洞
- 在服务器端,只有在验证码校验通过以后才能进行用户和密码的检验,否则出现漏洞
- 验证码是否为图片形式且在一张图片中,不为图片形式或不在一张图片中,说明存在漏洞
- 请求10次观察验证码是否随机生成,如果存在一定的规律(如:5次后出现同一验证码)说明存在漏洞
- 观察验证码图片中背景是否存在无规律的点或线条,如果背景色为纯色(如:只存在白色)说明有loud
- 服务器不能对认证错误信息提示准确的信息,如用户名错误、密码错误等
- 提供合理的锁定策略
- 预防认证被绕过,如:sql注入
3.会话管理测试
- 用户登录后,身份信息不再由客户端提交,而不是以服务器会话信息中保存的身份信息为准
- URL中不能携带SessionID信息
- 登陆后的页面有明确的“退出”或“注销”按钮,注销时会话信息要清除
4.权限管理测试
- 横向越权:攻击者尝试访问其他拥有相同权限的用户资源
- 纵向越权:一个低级别攻击者尝试访问高级别用户的资源
5.文件和目录测试
- 不存在不需要对外开放的敏感接口或者接口进行了完善的权限控制
- 禁止获取敏感目录或者文件信息
- 所有对目录的访问均不能打印处文件列表
- 禁止访问和下载文档的备份
- 不能越权获取到不该获取的文件
- 如DirBuster