查找设计缺陷
1)绕过必需的导航
① http://www.example.com/download.jsp?step=1&auth=false修改step和auth的值 ② 使用默认的管理员账号 ③ 跟踪必需的过程,然后返回跳过某个步骤 |
2)尝试特权操作
① 以管理员或特权的用户的身份进行登录,导航到须要这些特权的页面,然后注销特权并以普通用户或访客身份登录 ② 以一名用户的身份登录并将他的URL黏贴到另一名用户的会话中 |
3)滥用密码恢复
密码恢复机制: 1)个人秘密:字典攻击 2)email恢复:字典攻击 3)管理员恢复:社会工程学 |
4)滥用可预测的标识符
post.php?action=edit&post=[post ID] |
5)预测凭证
有些应用会在初始部署时自动分配初始密码或包含批处理脚本来做这件事的情况 例子: email address password Alice.Bailey@example.com exampleAB Chad.Daily@example.com exampleCD Elise.Franken@example.com exampleEF 例如购物网站的礼包序列号 |
6)找出应用中的随机数
在页面正文中 | 会话状态,像隐藏表单域中ASP.NET的_VIEWSTATE 唯一标识符,像客户ID,访客ID 隐藏表单域或javascript变量中的校验和 控制应用的行为的javascript变量和函数,比如setUserID(215) |
在cookie中 | 会话ID,几乎总是包含session这个词的某种变体或缩写 访问者及其账户或其他资源的唯一标识符 像角色、组或特权这种东西的表示(例如,groupid=8) 工作流程的指示符(status=5) |
在URL中 | 会话ID,同在cookie中一样 唯一标识符,也像你可能在cookie中找到的那样 像资源这种东西的表示(例如,msgid=83342) 工作流程的指示符(例如authorized=1) |
会使用Base64编码或URL编码,或者同时使用这两种编码 | |
测试随机数 | 手动搜集数据之后,打开Burp,切换到Sequencer窗格,选择Manual Load,并按下Load按钮。然后单击Analyze Now按钮。 看是否符合联邦信息处理标准FIPS文档的随机性要求 |
7)滥用可重复性
特定次数的密码尝试之后锁定账户 对许多不同用户尝试常用的密码 blog提交评论限制(几乎可重复的而且可能会影响到他人的操作) |
8)滥用高负载操作
负载测试,并发测试。DoS攻击 高负载测试:执行复杂的SQL查询,对大型列表排序,转换xml文档,可以查看性能测试结果,数据库性能分析结果或用户验收测试结果,对于每个最高负载项,确定用户是否能够重复发起这种操作。 僵尸网络攻击 |
9)滥用限制性功能
超时或错误地提交用户凭证时的账户锁定。 只需要输入另一位用户的凭证锁定他人的账户 |
10)滥用竞争条件
竞争条件:两项操作发生在同一块受保护的数据上的情况,这个数据可以是一条数据库记录、一个文件,或者仅仅是内存中的一个变量。如果攻击者能够在另一操作正在使用受保护数据的时候对它进行访问或修改,那么久可能破坏该数据以及依赖于它的行为 防范措施:必须以特定次序完成的操作需要包装成对服务器的原子事务请求。对文件的保护必须包含锁定或其他并发办法 |