ChatGPT批量写原创文章软件

destoon多线程(多线程condition)

密码那些事之前在工作中经常用密钥,但是不知道其中的原因,现在闲下来就来看下,再看的过程发现这个随机数概念很模糊,于是就查了下,现总结如下: 0x01 随机数 概述 随机数在计算机应

本文目录一览:

  • 1、密码那些事
  • 2、新建网站的程序有哪些?

密码那些事

之前在工作中经常用密钥,但是不知道其中的原因,现在闲下来就来看下,再看的过程发现这个随机数概念很模糊,于是就查了下,现总结如下:

 0x01 随机数

概述

随机数在计算机应用中使用的比较广泛,最为熟知的便是在密码学中的应用。本文主要是讲解随机数使用导致的一些Web安全风。

我们先简单了解一下随机数

分类

随机数分为真随机数和伪随机数,我们程序使用的基本都是伪随机数,其中伪随机又分为强伪随机数和弱伪随机数。

真随机数,通过物理实验得出,比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等

伪随机数,通过一定算法和种子得出。软件实现的是伪随机数

强伪随机数,难以预测的随机数

弱伪随机数,易于预测的随机数

特性

随机数有3个特性,具体如下:

随机性:不存在统计学偏差,是完全杂乱的数列

不可预测性:不能从过去的数列推测出下一个出现的数

不可重现性:除非将数列本身保存下来,否则不能重现相同的数列

随机数的特性和随机数的分类有一定的关系,比如,弱伪随机数只需要满足随机性即可,而强位随机数需要满足随机性和不可预测性,真随机数则需要同时满足3个特性。

引发安全问题的关键点在于不可预测性。

伪随机数的生成

我们平常软件和应用实现的都是伪随机数,所以本文的重点也就是伪随机数。

伪随机数的生成实现一般是算法+种子。

具体的伪随机数生成器PRNG一般有:

线性同余法

单向散列函数法

密码法

ANSI X9.17

比较常用的一般是线性同余法,比如我们熟知的C语言的rand库和Java的java.util.Random类,都采用了线性同余法生成随机数。

应用场景

随机数的应用场景比较广泛,以下是随机数常见的应用场景:

验证码生成

抽奖活动

UUID生成

SessionID生成

Token生成

CSRF Token

找回密码Token

游 戏 (随机元素的生成)

洗牌

俄罗斯方块出现特定形状的序列

游戏爆装备

密码应用场景

生成密钥:对称密码,消息认证

生成密钥对:公钥密码,数字签名

生成IV: 用于分组密码的CBC,CFB和OFB模式

生成nonce: 用于防御重放攻击; 分组密码的CTR模式

生成盐:用于基于口令的密码PBE等

0x02 随机数的安全性

相比其他密码技术,随机数很少受到关注,但随机数在密码技术和计算机应用中是非常重要的,不正确的使用随机数会导致一系列的安全问题。

随机数的安全风险

随机数导致的安全问题一般有两种

应该使用随机数,开发者并没有使用随机数;

应该使用强伪随机数,开发者使用了弱伪随机数。

第一种情况,简单来讲,就是我们需要一个随机数,但是开发者没有使用随机数,而是指定了一个常量。当然,很多人会义愤填膺的说,sb才会不用随机数。但是,请不要忽略我朝还是有很多的。主要有两个场景:

开发者缺乏基础常识不知道要用随机数;

一些应用场景和框架,接口文档不完善或者开发者没有仔细阅读等原因。

比如找回密码的token,需要一个伪随机数,很多业务直接根据用户名生成token;

比如OAuth2.0中需要第三方传递一个state参数作为CSRF Token防止CSRF攻击,很多开发者根本不使用这个参数,或者是传入一个固定的值。由于认证方无法对这个值进行业务层面有效性的校验,导致了 OAuth 的CSRF攻击。

第二种情况,主要区别就在于伪随机数的强弱了,大部分(所有?)语言的API文档中的基础库(常用库)中的random库都是弱伪随机,很多开发自然就直接使用。但是,最重要也最致命的是,弱伪随机数是不能用于密码技术的。

还是第一种情况中的找回密码场景,关于token的生成, 很多开发使用了时间戳作为随机数(md5(时间戳),md5(时间戳+用户名)),但是由于时间戳是可以预测的,很容易就被猜解。不可预测性是区分弱伪随机数和强伪随机数的关键指标。

当然,除了以上两种情况,还有一些比较特别的情况,通常情况下比较少见,但是也不排除:

种子的泄露,算法很多时候是公开的,如果种子泄露了,相当于随机数已经泄露了;

随机数池不足。这个严格来说也属于弱伪随机数,因为随机数池不足其实也导致了随机数是可预测的,攻击者可以直接暴力破解。

漏洞实例

wooyun上有很多漏洞,还蛮有意思的,都是和随机数有关的。

1.应该使用随机数而未使用随机数

Oauth2.0的这个问题特别经典,除了wooyun实例列出来的,其实很多厂商都有这个问题。

Oauth2.0中state参数要求第三方应用的开发者传入一个CSRF Token(随机数),如果没有传入或者传入的不是随机数,会导致CSRF登陆任意帐号:

唯品会账号相关漏洞可通过csrf登录任意账号

人人网 - 百度 OAuth 2.0 redirect_uir CSRF 漏洞

2.使用弱伪随机数

1) 密码取回

很多密码找回的场景,会发 送给 用户邮件一个url,中间包含一个token,这个token如果猜测,那么就可以找回其他用户的密码。

1. Shopex  4.8.5密码取回处新生成密码可预测漏洞

直接使用了时间函数microtime()作为随机数,然后获取MD5的前6位。

1. substr(md5(print_r(microtime(),true)),0,6);

PHP 中microtime()的值除了当前 服务器 的秒数外,还有微秒数,微妙数的变化范围在0.000000 -- 0.999999 之间,一般来说,服务器的时间可以通过HTTP返回头的DATE字段来获取,因此我们只需要遍历这1000000可能值即可。但我们要使用暴力破解的方式发起1000000次请求的话,网络请求数也会非常之大。可是shopex非常贴心的在生成密码前再次将microtime() 输出了一次:

1. $messenger = $this-system-loadModel('system/messenger');echo microtime()."

";

2.奇虎360任意用户密码修改

直接是MD5( unix 时间戳)

3.涂鸦王国弱随机数导致任意用户劫持漏洞,附测试POC

关于找回密码随机数的问题强烈建议大家参考拓哥的11年的文章《利用系统时间可预测破解java随机数| 空虚浪子心的灵魂》

2) 其他随机数验证场景

CmsEasy最新版暴力注入(加解密缺陷/绕过防注入)

弱伪随机数被绕过

Espcms v5.6 暴力注入

Espcms中一处SQL注入漏洞的利用,利用时发现espcms对传值有加密并且随机key,但是这是一个随机数池固定的弱伪随机数,可以被攻击者遍历绕过

Destoon B2B  2014-05-21最新版绕过全局防御暴力注入(官方Demo可重现)

使用了microtime()作为随机数,可以被预测暴力破解

Android  4.4之前版本的Java加密架构(JCA)中使用的Apache Harmony 6.0M3及其之前版本的SecureRandom实现存在安全漏洞,具体位于classlib/modules/security/src/main/java/common/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java

类的engineNextBytes函数里,当用户没有提供用于产生随机数的种子时,程序不能正确调整偏移量,导致PRNG生成随机序列的过程可被预测。

Android SecureRandom漏洞详解

安全建议

上面讲的随机数基础和漏洞实例更偏重是给攻击者一些思路,这里更多的是一些防御和预防的建议。

业务场景需要使用随机数,一定要使用随机数,比如Token的生成;

随机数要足够长,避免暴力破解;

保证不同用处的随机数使用不同的种子

对安全性要求高的随机数(如密码技术相关)禁止使用的弱伪随机数:

不要使用时间函数作为随机数(很多程序员喜欢用时间戳) Java:system.currenttimemillis() php:microtime()

不要使用弱伪随机数生成器 Java: java.util.Random PHP: rand() 范围很小,32767 PHP: mt_rand() 存在缺陷

强伪随机数CSPRNG(安全可靠的伪随机数生成器(Cryptographically Secure  Pseudo-Random Number Generator)的各种参考

6.强伪随机数生成(不建议开发自己实现)

产生高强度的随机数,有两个重要的因素:种子和算法。算法是可以有很多的,通常如何选择种子是非常关键的因素。 如Random,它的种子是System.currentTimeMillis(),所以它的随机数都是可预测的, 是弱伪随机数。

强伪随机数的生成思路:收集计算机的各种,键盘输入时间,内存使用状态,硬盘空闲空间,IO延时,进程数量,线程数量等信息,CPU时钟,来得到一个近似随机的种子,主要是达到不可预测性。

暂时先写到这里

新建网站的程序有哪些?

织梦cms(dedecms)

是否开源:是

版本更新频率:一般 最新更新版本为5.7

安全性能:差 (织梦经常被爆出各种BUG 笔者也遇到过很多dede网站的网被挂马等信息)

模板:非常多!

是否适合二次开发:一般 允许function功能扩展

系统功能:会员系统 留言 论坛扩展 广告 采集 过滤 会员点券 自动获取关键词 下载 Ajax技术结核性差

特点点评:总体来说这个cms还是大众比较能接受的一款cms 模板众多 功能上比较适合一般的开发使用 模板保存在空间内 也是静态生成 支持自定义模型 专题等 缺点就是BUG比较多 浏览版 搜索存在注入等BUG 生成速度也比较可观

帝国cms (EmpireCMS)

是否开源:是

版本更新频率:高 最新版本 7.2

安全性能:高 (来源HASH验证+认证码+证书认证+随时验证码+三道md5等)

模板:一般 帝国cms模板流传模板比较少

是否适合二次开发:一般

系统功能:

下载系统、音乐系统、商城系统、产品库、分类信息、会员系统、视频播放、手机端、广告 下载点券 留言反馈自定义 多线程(节点)采集

特点点评:这个cms的安全性是有目共睹的,来源认证的方式笔者十分认可 而且模板文件都是保存至数据库 静态生成 支持多浏览端 手机模板 多语言版开发比较适合 比较蛋疼的是 帝国cms后台 太乱了而且不适合新手入门 标签模板也比较复杂点 适合开发不错帝国官方给了很多自定义的插件 字段 结合项 以及万能会员接口等,无限分表 制作关于我们联

系方式等单页需要信息绑定栏目 动态文件不支持一些标签模板。商城功能太垃圾

Phpcms ( 本人研究时间不多,部分功能还没用过,简单评论)

是否开源:是

版本更新频率:一般 最新版本V9

安全性能:一般

模板:一般少于帝国cms

是否适合二次开发:一般 开发模板还行 功能开发 勉强

系统功能:新闻、图片、下载、信息、产品、会员、问吧、订单、财务、专题、全站搜索、广告、自定义表单、个人空间、短消息、邮件订阅、评论、Digg、心情指数、问卷调查、留言本、友情链接、WAP等

特点评论:内容模型、会员模型、问吧、订单、财务等20多个功能模块组成这个比较爽 适合做一些资讯站点 支持在后台完全可视化添加、预览和编辑,自动缓存php页面,一定程度上,减轻了服务器压力,官方服务性比较差 BBS里面的官方回复爱理不理的静态不怎么样;速度比较慢 对SEO不合适

齐博cms

是否开源:是

版本更新频率:一般 V7

安全性能:一般 我都叫他齐软 ·勃··起有问题

模板:还行相对于dede比较少

是否适合二次开发 不适合

系统功能:分类信息系统、电子商务系统、新闻媒体系统、图片系统、下载系统、视频系统、知道系统、黄页系统、博客系统、考试系统、企业系统

特点评论:建站做企业站 用这个的很少 不能说没有 大部分都是用这个做一些行业资讯的站的比较多 也是静态生成 唯一不一样的是支持拖拽布局 有种QQ空间装饰的感觉 安全性一般 乌云网已经爆过N多BUG 听说最近正在开发微信模板 比较期待

Php 168 cms(国威cms)

是否开源:是

版本更新频率 一般

安全性能:一般

模板多少:未知

是否适合二次开发:未知

系统功能:提供多套方案:站群系统、政府方案、企业内网方案、企业外网方案等。提供在线办事、视频、文章、下载、图片等系统模块。提供问答系统、表单系统、商城等系统模块。提供手机群发、邮件群发、站内群发等相关功能。提供留言本、售后模块、投诉建议等功能。提供通讯录、邮箱、万年历、计数器等功能模块。

特点评论:安全性还说得过去 本人用的比较少 企业站很少 主要是做 学校 ZF 内外网 以及站群为主的 系统可一键安装、一键卸载、一键暂停 这个不错所有操作均不需要进入后台,前台即可操作不知道是好是坏 支持动态标签、静态标签、标签后缀内置的即时通讯插件 不错可以尝试

Discuz

是否开源:是

版本更新频率:高 x3.2

安全性能:一般

模板多少:多堪比dede cms

是否适合二次开发:是

系统功能:应用中心、站长管理、分类信息、群组、门户、论坛、评论、等等

特点点评:

Discuz 我比较认可的一个cms 用它做企业站有点大材小用。先说下数据库数据结构更经过精心的设计,从字段到表的分配、索引的构建,都经过缜密的考虑,这个不错!点个赞!

其次BBS 门户 功能也不错 二次开发比较容易上手 支持diy 制作 而且后台支持随时换模板 很多开发者能自己进入 出售自己的模板 还有uc的设置接口 海量插件 支持手机版 微信登陆支付等 我现在用它搞微信平台 做的不错!缺点是很多注册机让人很蛋疼 金币论坛功能也不错 让很多站长发了家!

Destoon cms

是否开源 是

版本更新频率 高 5.0

安全性能:未知

模板多少:一般

是否适合二次开发:是

系统功能:会员、公司、商城、求购、供应、行情、人才、专题、图库、文章、分站、广告、排名、WAP、公告

特点点评:

做供求网站的不二选择,内置了非常强大的模板模型。简直就是阿里旺旺的整站源码 静态生成 会员注册 开店 求购供应 行业新闻投稿审核等信息 我比较看重 2个地方 是分站和排名

Ecshop cms

是否开源:是

版本更新频率:慢 V2.7.3

安全性能:高

模板多少:多

是否适合二次开发:是

系统功能以及点评:网店系统,功能非常全面,不仅有强大的商品筛选功能和灵活的促销功能; 还可以对商品的参数进行编辑,包括货号、品牌、单位、类别、库存、价格、成本价、积分、图片、详细描述等等,而且发货单还可以跟踪和批量打印,商家和顾客都可以跟踪物流情况;每个页面都能针对性的标题、关键字便于SEO搜索引擎收录 模板后缀并非htm 后台比帝国cms还有蛋疼 主要是适合个人开店 并非平台 平台详细参考shopex cms就不多做shopex cms的介绍了

thinkphp

是否开源:是

版本更新频率:一般 3.2.3

安全性能:高

模板多少:无

系统功能:无

点评: 这个或许不能叫它cms 应该叫他框架比较合适、MVC结构的开源PHP框架 比较适合 程序员做功能网站当然也可以自己写成cms 直接调用即可 底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。AJAX支持 静态页面生成和多元化缓存机制 也是不错!适合程序员的一款框架

wordpress cms

是否开源:是

版本更新频率:一般 5.3.1

安全性能:高

模板多少:多

系统功能:主要是以博客为主

系统点评:有许多第三方开发的免费模板,安装方式简单易用 和dz差不多、 功能强大,插件众多,易于扩充功能、主要适合用于博客系统 我曾经见过一个网络公司用这个做企业站!没法技术大能就是任性!不多说了

-------------------------------写在最后

关于开源 我想说闭关锁国早晚会死 无论哪个公司或者是 CMS

其次 关于安全性 没有最安全的系统 记录是人创造的也是人打破的

关于系统功能 总体来说分3种 一般的企业 行业资讯 一种是B2B等 一种就是网店等

关于点评:只是我个人的意见 和见解 不足请指正!不喜勿愤

destoon多线程(多线程condition)

相关文章