文章目录
- Broken Auth - Forgotten Function
- Broken Auth. - Insecure Login Forms
- Broken Auth. - Logout Management
- Broken Auth. - Password Attacks
- Broken Auth. - Weak Passwords
- Session Mgmt. - Administrative Portals
- Session Mgmt. - Cookies (HTTPOnly)
- Session Mgmt. - Cookies (Secure)
- Session Mgmt. - Session ID in URL
- Session Mgmt. - Strong Sessions
Broken Auth - Forgotten Function
low
直接爆破邮箱就能获得secret
medium
在low的基础上,会将secret发送到用户邮箱。
high
发送一条重置 secret的链接,并且在链接中加入随机因子,防止被伪造。
Broken Auth. - Insecure Login Forms
low
源码中直接找到用户名和密码,就很离谱。
但是要在F12中找
medium
解密函数在源代码中,而且比较简单
high
无限制暴力破解
Broken Auth. - Logout Management
low
退出登录session没有销毁
跳转目录,直接登录,没有做身份验证
medium
退出登录后,session已销毁
high
退出登录后,session先被清空,然后被销毁
Broken Auth. - Password Attacks
low
无限制爆破
medium
带salt爆破,和token差不多,直接递归搜索salt实时更新替换
high
有图片验证码,但可以重复使用,可以无限制爆破。
Broken Auth. - Weak Passwords
low
无限制暴力破解
medium
无限制暴力破解
high
无限制暴力破解
Session Mgmt. - Administrative Portals
low
admin=1 在url
medium
admin=1 在cookie
high
admin=1 在session
Session Mgmt. - Cookies (HTTPOnly)
low
medium和high
Session Mgmt. - Cookies (Secure)
关于setcookie
setcookie ( string $name
, string $value
= “” , int $expires
= 0 , string $path
= “” , string $domain
= “” , bool $secure
= false
, bool $httponly
= false
) : bool
name------------cookie名称
value------------cookie值
expires------------cookie的过期时间
path---------------cookie有效的服务器路径,设置成’/'时,cookie对整个域名domain有效
domain------------cookie的有效域名/子域名
secure-------------设置这个cookie是否仅仅通过安全的https连接传给客户端,true则是
httponly----------若为true,cookie仅可通过http协议访问,而无法通过类似javascript这样的脚本语言访问(可有效防止cookie劫持)
Session Mgmt. - Session ID in URL
low sessionID在url中
medium和high sessionID在cookie中(相对安全)
session ID暴露在url中,容易造成session fixation(固定)攻击
session 固定攻击:就是登录前后用户的session ID没有发生变化。攻击者先构造含有一个未认证sessionID的url,诱导用户点击,当用户点击登录成功后,攻击者也可以直接通过此url进入用户账户。
Session Mgmt. - Strong Sessions
强 session 主要是指 session 生成由强加密 / 摘要 / 随机算法生成,并且有 httponly,secure 属性保护