跟bWAPP学WEB安全(PHP代码)--认证绕过与会话管理
背景
这里主要是代码逻辑问题,而不是代码使用函数的问题,因此在这个里面就不粘贴具体代码了,而是分类介绍下bWAPP中涉及的安全问题:
- 验证码问题
- 找回问题
- 账号口令问题
- Cookies问题
- Session问题
验证码问题
常见漏洞:
验证码可穷举、验证码可识别、验证码被传送到客户端、验证码前端校验、验证码可重放、验证码无验证或验证有问题等等
- 验证码可穷举:只验证码为优先数量,且不够随机出现,规律被攻击者获知,可以通过脚本去尝试遍历。
- 验证码可识别:利用图像识别代码识别验证码之后发送。可以绕过验证码检测机制。
- 验证码被传到客户端:在头部字段里面(含session)或者在前端页面显示或者在前端代码里面。
- 验证码前端校验:指验证码比对在前端,攻击者可以修改前端页面中的脚本代码逻辑绕过。
- 验证码可重放:指验证码利用一次之后,并没有改变,可以多次重复利用。
- 验证码无验证或验证有问题:空验证码、任意验证码、特殊验证码等等至少一个手段可以绕过验证码
代码逻辑
验证码应该每次随机生成,且不能相同(对抗穷举和重放)。图像足够复杂,且不能太短,短信邮箱验证码的验证时间要短。(对抗穷举和识别),验证码应该存储到服务器的session中,网站验证码不能明文传送到前端,校验需要放在服务器中进行。代码逻辑编写时候要注意校验逻辑,不要出错。同时对于短信和邮箱发送验证码要注意频率问题,避免短信或者邮件轰炸。
找回问题
常见漏洞
这里只有一个问题,一种是没有足够的验证导致非账号拥有者可以重置或找回。注意下代码逻辑,对重置和找回要进行足够的认证,手段有:
- 密保问题
- 生物指纹
- 手机和邮箱拥有(不推荐)
- 令牌或token拥有(推荐)
账号口令问题
常见漏洞:
常见问题,账号弱口令、SQL注入、万能密码、可以爆破、前端显示或校验,可以绕过等等。
解决办法
- 账号弱口令:配置强口令
- SQL注入:避免此类漏洞
- 万能密码:避免SQL注入也避免了万能密码
- 可以爆破:采用验证码可控制
- 前端显示和校验:密码明文和hash值不得传到前端,校验不能在前端进行
- 可以绕过:忽略
Cookies和Session问题
基本是一类,因为头部字段一般只有cookies这个值,session是其中的一个字段,注意要加httponly,session不要在url中存储等等。
跟bWAPP学WEB安全(PHP代码)--认证绕过与会话管理的更多相关文章
- 跟bWAPP学WEB安全(PHP代码)--XPath注入
XML/Xpath注入 看了下,A2里面是认证与会话管理的破坏或称之为绕过,没有特别要写的,很多就是小问题,可能会将这类问题放在最后写一下.一篇博客,这里还是更多的着重在能够获取信息或者服务器权限的漏 ...
- 跟bWAPP学WEB安全(PHP代码)--终结篇:文件目录遍历、文件上传、SSRF、CSRF、XXE、文件包含
前言 过年过的很不顺,家里领导和我本人接连生病,年前腊月29才都治好出院,大年初六家里的拉布拉多爱犬又因为细小医治无效离开了,没能过年回家,花了好多钱,狗狗还离世了.所以也就没什么心思更新博客.今天初 ...
- 跟bWAPP学WEB安全(PHP代码)--邮件头和LDAP注入
背景 由于时间限制和这俩漏洞也不是特别常用,在这里就不搭建环境了,我们从注入原来和代码审计的角度来看看. 邮件头注入 注入原理: 这个地方首先要说一下邮件的结构,分为信封(MAIL FROM.RCPT ...
- 跟bWAPP学WEB安全(PHP代码)--OS命令注入
背景 这是温故知新的一个系列,也是重新拾起WEB安全的一个系列,同时希望能稍微有点对初学者的帮助.第一篇先来讲讲OS命令注入 bWAPP里面有两个页面也就是两个漏洞,来验证OS命令注入.一个是有回显的 ...
- 跟bWAPP学WEB安全(PHP代码)--SQL注入的一些技巧
背景 模拟环境还是 bWAPP,只不过这个bWAPP的SQL注入有点多,一一写意义不大,在这边就利用这个环境来尝试一些SQL注入的技巧.并研究下PHP的防御代码. 普通的bWAPPSQL注入的简单介绍 ...
- 跟bWAPP学WEB安全(PHP代码)--PHP代码注入
---恢复内容开始--- 背景 今天我们换一个方式来分析这个漏洞,从渗透的角度去搞. 渗透过程 测试漏洞 先来看看,观察URL是:http://192.168.195.195/bWAPP/phpi.p ...
- 跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
背景 这个系列有很多题,但是其实考察的相近,类似的就不在多说,我们来看吧.主要分几个点来讲: 反射型 存储型 JSON XM 头部字段相关 分类介绍 反射型 在请求中构造了XSS的Payload,一般 ...
- 跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞
什么是Server-Side-Include漏洞 服务端包含漏洞是指发送指令到服务器,服务器会将指令运行完,把运行结果包含在返回文件中发送给你.利用这种漏洞可以获取服务端的信息甚至执行命令,这样的指令 ...
- 跟bWAPP学WEB安全(PHP代码)--HTML注入和iFrame注入
背景 这里讲解HTML注入和iFrame注入,其他的本质都是HTML的改变.那么有人会问,XSS与HTML注入有啥区别呢?其实本质上都是没有区别的,改变前端代码,来攻击客户端,但是XSS可以理解为注入 ...
随机推荐
- Android APK 打包过程 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Java代码常见的十种错误
每一个程序员在编写代码的过程中都免不了出现错误或是小的失误,这些小的错误和失误往往使得程序员还得返工.那么,如何才能尽量避免这些错误的发生呢?笔者总结只有在日常的编写代码中总结出经验,在这篇文章中,笔 ...
- LiteIDE 在 Windows 下为 Go 语言添加智能提示代码补全
本文以 Windows 7 64 位为环境,go1.4.2.windows-amd64 和 liteidex27.2.1.windows-qt5 为例. 成功搭建开发环境后,发现 LiteIDE 没有 ...
- 【ZH奶酪】如何用textgenrnn处理中文
如何用textgenrnn处理中文 1. 什么是textgenrnn? textgenrnn是建立在Keras和TensorFlow之上的,可用于生成字级别和词级别文本.网络体系结构使用注意力加权来加 ...
- 原创:vsphere概念深入系列一:关于vsphere虚拟交换机的端口的数量限制。
总结出来的概念: vm上有多少个虚拟网卡就被分配了多少个vPort.vswitch缺省情况下有8个vmk端口(vport)保留给vmkernel使用.但是当vport不够的时候也可以被使用. 默认第一 ...
- EntityFramework CodeFirst反向工程工具
EntityFramework Reverse POCO Generator https://marketplace.visualstudio.com/items?itemName=SimonHugh ...
- 【Matplotlib】数据可视化实例分析
数据可视化实例分析 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令 ...
- DataGuard---->备库参数db_file_name_convert和log_file_name_convert的作用
一.参数说明 [1] db_file_name_convert db_file_name_convert 主数据库和备用数据库的数据文件转换目录对映(如果两数据库的目录结构不一样),如果有多个对映,逐 ...
- Oracle 12c 添加scott用户
对于熟悉Oracle或者接触过Oracle的人,scott这个用户大家一定相当的熟悉.12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb.pdb中默认不包含scott用 ...
- 【PMP】项目采购管理~重点知识
1.合同的类型与区别 固定总价(FFP):大多数买方都喜欢这种合同,因为货物的采购价格在一开始就已确定,并且不允许改变(除非工作范围发生变更) 总价加激励费用(FPIF):这种总价合同给买方和卖方提供 ...