今年早些时候,苹果联合微软和谷歌发布声明,将扩大对 FIDO 标准的支持,加速推广无密码登录。所谓无密码登录,就是采用生物识别、USB 硬件密钥等方式来替代密码进行网络认证。听起来还是摸不着头脑?其实你很可能每天都在用。举例来说,各种手机 APP 使用的指纹验证登录方式,就属于无密码登录。
在日常开发中,我们进行用户登录的时候,大部分情况下都会使用 session 来保存用户登录信息,并以此为依据判断用户是否已登录。但其实 HTTP 也提供了这种登录验证机制,我们今天就来学习关于 HTTP 验证相关的知识。
常用的MD5、SHA1、SHA256哈希算法,是面向快速、高效进行哈希处理而设计的。随着技术进步和计算机硬件的提升,如今强大的计算机很容易破解这种算法。也就是说,不要用MD5、SHA1、SHA256这种哈希方法加密密码了,不太安全。 还好,PHP内置了密码哈希函数password_hash,使用这个方法,PHP会升级底层的算法,达到如今的安全标准水平。
综述:密码学是研究编制密码(我们简称为加密:encode)和破译密码(我们称之为解密:decode)的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。通常情况下,人们将可懂的文本称为明文;将明文变换成的不可懂的文本称为密文。把明文变换成密文的过程叫加密;其逆过程,即把密文变换成明文的过程叫解密。
在 SEMCMS php v2.7 审计之前,我会去看看要审计的CMS官网是否存在手册说明什么的,然后去会各个漏洞公布平台找找它以前的老漏洞,复现下是否修复及修复是否完整(主要是去看看会不会有现金奖励)。
LNMP是一组可用于为动态网页和Web应用程序提供服务的软件。这是一个描述Linux操作系统的首字母缩略词,带有Nginx(发音为“ Engine-X”)Web服务器。后端数据存储在MySQL数据库中,动态处理由PHP 处理。
在网站设计中,我们避免不了对账户的管理,本篇重点介绍我的项目“看世界”网页对账户密码修改的逻辑处理!
在使用PHP开发Web应用的中,很多的应用都会要求用户注册,而注册的时候就需要我们对用户的信息进行处理了,最常见的莫过于就是邮箱和密码了,本文意在讨论对密码的处理:也就是对密码的加密处理。
密码加密方式数据库中,存储结果的列可以超过60个字符,需要将varchar长度设置为255。
首先我们需要下载PHPMailer:https://github.com/PHPMailer/PHPMailer
业务逻辑漏洞,是由于程序逻辑不严谨或逻辑太过复杂,导致一些逻辑分支不能正常处理或处理错误,这样的漏洞统称为业务逻辑漏洞。
在进行暴力破解登录框的时候、发现第一个验证码是正常的、后面全部验证码错误、查看302的返回包
SimpleSAMPLphp是一个开源的PHP身份验证应用程序,它作为服务提供者(SP)以及身份提供者(IdP)来为 SAML 2.0提供支持。
在centos上有yum,ubuntu上有apt,而mac则是brew。这个并不是内置的。需要在终端执行命令进行安装。命令如下:
不知道大家有没有看过 Laravel 的源码。在 Laravel 源码中,对于用户密码的加密,使用的是 password_hash() 这个函数。这个函数是属于 PHP 密码散列算法扩展中所包含的函数,它是集成在 PHP 源码中的扩展,并且还是 PHP 官方所推荐的一种密码加密方式。那么它有什么好处呢?
经常使用控制台, 还是不会忘记密码的, 但有时候偏偏就忘了(设置密码的时候太复杂了....), 或者被人修改了密码, 或者就是长期未使用, 忘记了密码. 这时候咋办呢?
php Header PHP_AUTH_USER PHP_AUTH_PW 用户验证
今天来看看如何精简一个 php 后门,基于 php 的特性,让 php 后门的字节最小化,首先编写一个一句话后门:
最近把小站的登录页面给重构了,之前的安全性存在很大问题,基本处于裸奔的状态,特此记录一下过程。
详解cookie验证的php应用的一种SSO解决办法 近日,项目中需要接入一个“年久失修”的PHP应用,由于系统已经建设多年,并且是信息中心自己的人通过某些工具弄出来的,而且是本人未真正接触过的PHP写的,而且跟我们的系统不在同一服务器上也就是存在跨域的问题,想通过客户端模拟登录的方式来实现,但是总是不成功。
LNMP软件堆栈是一组可用于为动态网页和Web应用程序提供服务的软件。它是一个描述带有Nginx Web服务器的Linux操作系统的首字母缩写词。其后端数据存储在MySQL数据库中,动态处理由PHP处理。
综述 2018年01月09日,Dedecms官方更新了DedeCMS V5.7 SP2正式版,后续在10日有网友爆出其存在任意用户密码重置漏洞。 攻击难度:低。 危害程度:高。 官方修复情况如下:目前暂未发布升级补丁 ---- 什么是DedeCMS 织梦内容管理系统(DeDeCMS) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展,目前的版本无论在功能,还是在易用性方面,都有了长足的发展和进步。广泛应用于
相对于其他几种语言来说, PHP 在 web 建站方面有更大的优势,即使是新手,也能很容易搭建一个网站出来。但这种优势也容易带来一些负面影响,因为很多的 PHP 教程没有涉及到安全方面的知识。
这段时间一直在写一个整站,前几天才基本完成了,所以抽个时间写了一篇对于php安全的总结。 技术含量不高,过不了也没关系,希望能一些准备写网站的朋友一点引导。 在放假之初,我抽时间看了《白帽子讲web安全》,吴翰清基本上把web安全中所有能够遇到的问题、解决思路归纳总结得很清晰,也是我这一次整体代码安全性的基石。 我希望能分如下几个方面来分享自己的经验 把握整站的结构,避免泄露站点敏感目录 在写代码之初,我也是像很多老源码一样,在根目录下放上index.php、register.php、login.
说明:现在很多使用wordpress的人,或多或少都会出现后台被登录很多次的现象,运气不好就被进去了,通常大家都会通过修改wp-login文件来保护wordpress后台,但是这种方法有个不方便的地方就是每次WP升级就又要重改一遍,感觉很麻烦,不过使用Nginx的auth_basic基本http验证功能可以保护web目录下的文件,于是我们就可以使用此文件来保护wp-login.php文件,效果就是进入后台之前,还需要验证成功,这样感觉很有效。这里以军哥的lnmp环境为例。
如果需要更多过滤html输入方式,可以使用html Purifier库,缺点:速度慢,而且可能难以配置 ==不要使用正则表达式过滤html,正则表达式很复杂吗,可能导致html无效且出错的几率高==
前言 wordpress自带用户注册功能,但是当用户注册时,无法收到验证邮件,本教程就是解决如何此问题! 解决方案 首先找到主题模板函数文件functions.php image.png 添加代码,修改成自己的邮箱信息。 // 邮箱验证 function mail_smtp( $phpmailer ){ $phpmailer->From = "admin@****.com"; //发件人 $phpmailer->FromName = "分享吧"; //发件人昵称 $phpmailer->Host =
提示:系统存在漏洞,端口存在漏洞,flag分为两部分,一部分在web一部分在系统。
不知道大家注意到没,博客的速度变快了很多。按捺不住还是搬家到了日本主机上,希望更快的速度能带给大家更好的体验。
1.概述 代码审核,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在开发阶段存在的一些漏洞或者程序逻辑错误,避免程序漏洞被非法利用给企业带来不必要的风险。 代码审核不是简单的检查代码,审核代码的原因是确保代码能安全的做到对信息和资源进行足够的保护,所以熟悉整个应用程序的业务流程对于控制潜在的风险是非常重要的。审核人员可以使用类似下面的问题对开发者进行访谈,来收集应用程序信息。 应用程序中包含什么类型的敏感信息,应用程序怎么保护这些信息的? 应用程序是对内提供服务,还是对外?哪些人会使用,他们都是可信用户么? 应用程序部署在哪里? 应用程序对于企业的重要性? 最好的方式是做一个checklist,让开发人员填写。Checklist能比较直观的反映应用程序的信息和开发人员所做的编码安全,它应该涵盖可能存在严重漏洞的模块,例如:数据验证、身份认证、会话管理、授权、加密、错误处理、日志、安全配置、网络架构。 2.输入验证和输出显示 大多数漏洞的形成原因主要都是未对输入数据进行安全验证或对输出数据未经过安全处理,比较严格的数据验证方式为: 对数据进行精确匹配; 接受白名单的数据; 拒绝黑名单的数据; 对匹配黑名单的数据进行编码; 在PHP中可由用户输入的变量列表如下: $_SERVER $_GET $_POST $_COOKIE $_REQUEST $_FILES $_ENV $_HTTP_COOKIE_VARS $_HTTP_ENV_VARS $_HTTP_GET_VARS $_HTTP_POST_FILES $_HTTP_POST_VARS $_HTTP_SERVER_VARS 我们应该对这些输入变量进行检查 1.命令注入 PHP执行系统命令可以使用以下几个函数:system、exec、passthru、“、shell_exec、popen、proc_open、pcntl_exec 我们通过在全部程序文件中搜索这些函数,确定函数的参数是否会因为外部提交而改变,检查这些参数是否有经过安全处理。 防范方法: 1.使用自定义函数或函数库来替代外部命令的功能 2.使用escapeshellarg函数来处理命令参数 3.使用safe_mode_exec_dir指定可执行文件的路径 2.跨站脚本 反 射型跨站常常出现在用户提交的变量接受以后经过处理,直接输出显示给客户端;存储型跨站常常出现在用户提交的变量接受过经过处理后,存储在数据库里,然后 又从数据库中读取到此信息输出到客户端。输出函数经常使用:echo、print、printf、vprintf、< %=$test%> 对于反射型跨站,因为是立即输出显示给客户端,所以应该在当前的php页面检查变量被客户提交之后有无立即显示,在这个过程中变量是否有经过安全检查。 对于存储型跨站,检查变量在输入后入库,又输出显示的这个过程中,变量是否有经过安全检查。 防范方法: 1.如果输入数据只包含字母和数字,那么任何特殊字符都应当阻止 2.对输入的数据经行严格匹配,比如邮件格式,用户名只包含英文或者中文、下划线、连字符 3.对输出进行HTML编码,编码规范 < < > > ( ( ) ) # # & & ” “ ‘ ‘ ` %60 3.文件包含 PHP可能出现文件包含的函数:include、include_once、require、require_once、show_source、highlight_file、readfile、file_get_contents、fopen、file 防范方法: 1.对输入数据进行精确匹配,比如根据变量的值确定语言en.php、cn.php,那么这两个文件放在同一个目录下’language/’.$_POST[‘lang’].’.php’,那么检查提交的数据是否是en或者cn是最严格的,检查是否只包含字母也不错 2.通过过滤参数中的/、..等字符 4.代码注入 PHP可能出现代码注入的函数:eval、preg_replace+/e、assert、call_user_func、call_user_func_array、create_function 查找程序中程序中使用这些函数的地方,检查提交变量是否用户可控,有无做输入验证 防范方法: 1.输入数据精确匹配 2.白名单方式过滤可执行的函数 5.SQL注入 SQL注入因为要操作数据库,所以一般会查找SQL语句关键字:insert、delete、update、select,查看传递的变量参数是否用户可控制,有无做过安全处理 防范方法: 使用参数化查询 6.XPath注入 Xpath用于操作xml,我们通过搜索xpath来分析,提交给xpath函数的参数是否有经过安全处理 防范方法: 对于数据进行精确匹配 7.HTTP响应拆分 PHP中可导致HTTP响应拆分的
一、开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例)。
本文主要介绍的是基于centos7进行yum安装lnmp(linux+nginx+php7.1+mysql5.7)的相关教程,文中将一步步介绍的非常详细,下面话不多说了,来一起看看详细的介绍吧。
对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。 由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。 对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。 而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(Session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。 当然使用 Session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多说了。 Session 在 php.ini 是否需要设置呢?一般不需要的,因为并不是每个人都有修改 php.ini 的权限,默认 Session 的存放路径是服务器的系统临时文件夹,我们可以自定义存放在自己的文件夹里,这个稍后我会介绍。 开始介绍如何创建 Session。非常简单,真的。 启动 Session 会话,并创建一个 $admin 变量:
本文适合刚刚学完 python,光听别人说强大,但是自己没有直观感受过的人。介绍两种防暴力破解的方法,以及用 py 的绕过方法。(暂不考虑 sql 注入,不谈机器学习。)
4手机号码:不能为空,不能少于11个字符,不能多于11个字符,必须是数字,必须是可用的手机号码
1、开启会员模块 2、攻击者拥有一个正常的会员账号 3、目标没有设置安全问题
看到了一个好玩的平台————网络安全实验室,看起来对新手还是有帮助的,如果你有初步编程基础也可以看看脚本关哦!
“LAMP”堆栈是一组开源软件,通常安装在一起以使服务器能够托管动态网站和Web应用程序。这个术语实际上是一个缩写,代表L inux操作系统,带有A pache Web服务器。站点数据存储在M ariaDB数据库中,动态内容由P HP 处理。
查看完状态, 你需要按下 q 退出, Apache server的状态. 查看之后,知道Apache的服务已经起来了,那么下一步应该去查看一些Apache web页面. 输入 IP 地址到浏览器的地址栏然后回车就会看到. 如果你不知道自己的 IP地址是多少,那么你可以通过下面的命令查看:
本文主讲:ThinkPhp5开发实战系列续集:设计登录界面,完成登录操作 对于没有配置开发环境或者TP5框架的同学,请参考文章 [第一章 ThinkPhp5开发实战1:搭建环境配置TP5框架(持续更新收藏关注)]
注意:如果是虚拟机安装的kali 系统已经默认安装。直接用就行了,不需要安装。
虽然许多用户需要像MySQL这样的数据库管理系统的功能,但他们可能不会仅仅通过MySQL提示与系统进行交互。
此文主要是分析一下常见的web、系统、逻辑漏洞、各行业漏洞常见存在点,马上实习高峰期也要到来,各位有意向做渗透测试的同学请耐心观看,点点再看并转发,谢谢(有所不足欢迎提意见,毕竟我可能是想水一篇)
php手册中有专门的一个部分来介绍这个问题 http://php.net/manual/zh/faq.passwords.php
初学php做了一些比较常见且有用的页面,放在上面记录一下咯 我是用了bootstrap框架里面的模态框做注册登陆页面,这样页面比较美观 页面效果:
select username from security.user where id=1 and (extractvalue(‘anything’,concat(‘/’,(select database()))))
大家好,我是Tone,前几天我们字节脉搏的活动获得行业内各家媒体、企业、粉丝的支持,在此我非常感谢各位,相继的奖品和开奖会陆续送出请耐心的等待。
领取专属 10元无门槛券
手把手带您无忧上云