地 址:偃师市沈阳路563号
电 话:15920953972
网址:www.thecasinocritic.com
邮 箱:594978784@qq.com
市场上成千上万的数字资产可以分为两大类主网币和代币只有主网币才有以它自己的名字命名的,为它量身定制的钱包,而代币则只能寄宿在主网币的钱包里注意imToken 10 系列版本已于 20201111 停止服务,请尽快。
comxpagez0517hhjoz5html如果区块显示成功,建议搜索添加一下代币名称打开开关按钮刷新资产页面,搜索不到或者还是不显示,请不要担心,另外资产是存在区块上,并不在imToken服务器上,在app里面联系imToken方即可。
修改密码的链接上未对用户进行二次效验,修复方法是在参数里添加多个安全的验证参数来二次效验。
来分析一下以上案例中所存在的安全漏洞。
1. 邮箱找回密码的情况
网站收到了你的密码找回请求,会给你发一份邮件,里面包含了一个超链接,点击后就跳到修改密码的页面。
感谢您注册央视网!请点击下面的链接完成注册,快乐畅游央视网和中国网络电视台!http://reg.cctv.com/regist/activationServlet.action?email=web@secus.org&code=579364fdb494ebfd12d0373e0afd26a5&userSeqId=57332762&from=http%3A%2F%2Freg.cctv.com&backurl=http%3A%2F%2Freg.cctv.com%2FforgetPassword%2FfindPassword.action提示:如果链接无法点击,请将它复制到浏览器的地址栏中打开。为确保帐号安全,链接 72 小时内有效,若链接失效,请点击这里
感谢您注册央视网!请点击下面的链接完成注册,快乐畅游央视网和中国网络电视台!http://reg.cctv.com/regist/activationServlet.action?email=web@secus.org&code=579364fdb494ebfd12d0373e0afd26a5&userSeqId=57332762&from=http%3A%2F%2Freg.cctv.com&backurl=http%3A%2F%2Freg.cctv.com%2FforgetPassword%2FfindPassword.action提示:如果链接无法点击,请将它复制到浏览器的地址栏中打开。为确保帐号安全,链接 72 小时内有效,若链接失效,请点击这里
类似于以上的链接,这种需要分析一下 token 的构造了。
http://i.360.cn/findpwd/setpwdfromemail?vc=e%2FwljiqD9WGv%2FwDyS93BghveGh%2FDYG4oMjJwcxGlcnSDZP3qIW4deYwnCpkdbCSZ3ByODXHZYDCx32A46l%2FBXxk6qo5oABIr6ZrywAoPB8DZuX81j%2Bb%2F2w%3D%3D&qid=507290669
这里的这封邮件 qid=507290669 就可以看做是一个 ID 参数,构造了相应的链接时就可以重置任意用户的密码。
2. 手机短信找回
身份验证的方式是手机验证码,多 4 位和 6 位,可以采取爆破的方式,从 1-9999 进行列举也不会耗多少时间,有的验证码有效时间是为 30 分钟,足够让你随意枚举。
3. 找回密码逻辑缺陷
在找回密码的时候,用户 A 输入你自己的手机号码找回,收到了验证码不去使用:
然后用户 A 去使用用户 B 的手机号来找回密码
用户 A 在 B 的找回密码处填入刚刚自己收到的验证码
程序验证成功,修改了 B 的用户密码
4. 找回密码逻辑缺陷 2
这种找回密码的逻辑缺陷多存在于以下场景。找回密码验证身份的页面 uid=1 验证成功进行修改密码的页面的 uid=2。直接在找回密码的页面访问验证成功进行修改的页面进行修改。
5. 本地验证的找回密码逻辑缺陷
在找回密码的时候,开 Burp 抓包,抓返回包,返回包里可能有一个 flag 字段,此时返回包的数据是-1,猜测若 flag 的值为 1 则跳转到修改密码的页面,所以只要修改一下 flag 值即可验证身份成功,进行更改密码操作。
验证码在 HTTP 请求里返回。点击获得验证码,有些代码逻辑不严,会把验证码发送到 HTTP 请求里,直接开 burp 捕获验证码即可。
6. HTML 源码
有时候一些验证身份的情况下,他的密保问题答案会出现在 HTML 源码里,你只需要打开 F12 进行查看。
到此,密码找回流程的逻辑漏洞已经概括了大多数了。
越权访问
越权访问也比较容易理解。越权访问通俗点来讲,就是你作为一个普通用户能够访问管理员用户才能访问到的资源。
越权也分水平越权和垂直越权。水平越权,即是相同级别的用户或者同一角色的不同用户之间,可以越权访问修改或者删除等重要功能。
比如我是一个论坛的会员 A ID 号为 2, 而你也是这个论坛的会员 B ID 号为 3, 我点击个人资料的时候,可以访问你的个人资料页面。
例如,http://www.gitbook.cn 提供了用户修改资料的功能,当访问 http://www.gitbook.cn /userinfo.action?id=2时,将会显示自己的信息,并且可以编辑。
在这种情况下,用户 A 访问的时候就会把 ID=3 的用户信息页面显示出来,这就是水平越权。通过枚举 id=? 可以造成论坛大量用户数据泄露的情况。
垂直越权就是普通用户可以访问只有管理员才能访问到的资源,比如,后台网站模块更改等。
来看个例子。
淘宝举报编号任意遍历
http://archer.taobao.com/myservice/report/report_detail.htm?gmtCreate=2013-02-23&id=[任意举报编号]
淘宝的这个漏洞就属于水平越权漏洞。
区块链兄弟社区,区块链技术专业问答先行者,中国区块链技术爱好者聚集地
来源:GitHub
原文链接:http://t.cn/Rdgc7QP
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文约5000字+,阅读(观看)需要28分钟
开发语言、框架与工具
语言
Solidity - 官方推荐以太坊智能合约开发语言,也是目前最为主流的智能合约语言。
Bamboo - 是一种将智能合约描述为有限状态机的语言,把智能合约看成一个状态和交易的函数,同时生成一个新的状态。
Vyper - 一种类 python 的面向合约编程语言,专注于以太坊虚拟机,着重于安全、简洁、和稳定性。
框架
Truffle - 最为流行的智能合约开发、测试和部署框架。经常与 Ganache (也是由 Truffle 团队开发) 一起搭配使用。
Embark - 一个 DApp 开发框架。
Populus - 用Python语言写的智能合约开发框架。
Etherlime - 基于 ethers.js 的 DApp 开发框架。
集成开发环境(IDE)
Remix - 一个基于solidity语言的在线智能合约开发IDE,它提供从编译,调试到部署的全流程支持。
Atom - Atom 编辑器可以结合 Atom Solidity Linter, Etheratom 等插件进行智能合约开发。
Pragma - 一个非常简单的 solidity 合约在线 IDE。提供合约的编译、部署与调用支持。
Superblocks Studio - Superblocks Studio 可以帮助你在线编写、编译与部署智能合约。目前处于 beta 版本。
Vim solidity - 有了这个,使用 vim 也可以写愉快地写 solidity 了。
Visual Studio Code - VSCode 是我日常用的最多的工具,好多支持 solidity 的插件。
Intellij Solidity Plugin - JetBrains IntelliJ Idea IDE 上用的 solidity 插件,支持语法高亮,格式化与代码自动补全。
常用以太坊交互代码库
Web3.js - 以太坊官方的 Java API
Eth.js - 优化过的 Web3.js
Ethers.js - 更加完整的以太坊 Java 代码库,包括 Web3.js 没有的足记词与 HD 钱包支持等。
Web3.py - Python 版的 Web3
Web3.php - PHP 版的 Web3
Web3j - Java 版的 Web3
Nethereum - .Net 版的 Web3
Ethereum.rb - Ruby 版的 Web3
Web3.hs - Haskell 版的 Web3
KEthereum - Kotlin 版的 Web3
Pyethereum - Python 版的以太坊核心客户端
Drizzle - 基于 Redux 的用于链接以太坊的前端代码库
Eventeum - 以太坊智能合约事件和后端微服务之间的桥梁
Vortex - 可直接用于 DApp 的 Redux Store。通过 WebSockets 实现智能合约与后台数据的自动刷新。
相关工具
Truffle boxes - 一些打包好的组件
Local Raiden - 在 docker 容器中运行本地雷电网络以进行演示和测试
Private networks deployment s - 私有 PoA 网络的开箱即用部署脚本
Local Ethereum Network - 私有 PoW 网络的开箱即用部署脚本
Kaleido - 使用 Kaleido 启动联盟区块链网络。非常适合 PoC 和测试
Cheshire - CryptoKitties API 和智能合约的本地沙箱实现
Solc - Solidity 编译器
Solidity cli - 更快更好的编译 Solidity
Ethereumjs - 以太坊实用的 java 代码库集合,比如 ethereumjs-util 和 ethereumjs-tx 等
Ethjs - 简单好用的 JS 模块
Eth lightwallet - 在 Node 和浏览器里用的以太坊轻钱包
RLP - RLP 编码的 JS 版实现
Solium - 用于识别和修复 Solidity 中的代码格式和安全问题
Ethereal - 一个命令行工具,用于管理以太坊中的常见任务
ABI decoder - 用于解码以太坊交易中数据参数和事件的库
Ethereum ABI UI - 根据以太坊合约 ABI 自动生成 UI 表单字段和关联的验证器
Eth crypto - 用于以太坊的加密java 函数以及将它们与 web3js 和 solidity 一起使用的教程
Solidity flattener - 一个可以将工程中相互引用的合约合并到一个合约文件的工具
JS IPFS API - JS 实现的与 IPFS API 交互的代码库
Ganache - 具有 UI 的本地以太坊简单实现
SpankCard - 浏览器里用的以太坊钱包
Parity Signer - 允许签署交易的移动应用
py-eth - 以太坊 Python 语言工具集
Decode - 用以解析提交给本地 testrpc 节点的交易,使其更易读,更易于理解
基础架构相关
客户端
Geth - Go 语言实现版本
Parity - Rust 语言实现版本
Cpp-ethereum - C++ 语言实现版本
Pyethapp - 基于 pyethereum 的 Python 语言实现版本
Trinity - 基于 py-evm 的 Python 语言实现版本
Ethereumjs - 基于 ethereumjs-vm 的 JS 实现版本
Ethereumj - Java 语言实现版本
Harmony - 基于 Ethereumj 的以太坊节点实现,EtherCamp出品
Seth - 命令行版的 MetaMask
Mustekala - 以太坊轻客户端实现,MetaMask 团队出品
Exthereum - Elixir 语言实现版本
EWF Parity - 兼容以太坊的能源区块链客户端
Quorum - 基于以太坊改造的关注数据隐私的授权访问区块链, JP Morgan 出品
存储
Swarm - 去中心化存储平台和内容分发服务,是以太坊 web3 技术栈的基础层服务
IPFS - 去中心化存储网络,致力于使网络更快,更安全,更开放的点对点超媒体协议
IPFS-Store - 带检索功能的 IPFS 服务 API
OrbitDB - 基于 IPFS 的去中心化数据库