【学术探讨】万能密码原理剖析

这篇具有很好参考价值的文章主要介绍了【学术探讨】万能密码原理剖析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

【万能密码】,顾名思义,就是可以 【登录任意网站】的账号和密码,这篇文章就跟大家探讨一下,万能密码究竟是如何实现登录的。

首先了解一下登录功能的逻辑。

我们平时登录账号时,如果是第一次登录,系统会提示我们注册账号,并将我们注册的账号和密码保存到数据库中。

当我们再次登录时,系统会将我们输入的账号和密码和数据库中的数据进行匹配,匹配成功能登录。这就意味着我们需要知道一个已经注册过并且正确的账号和密码才能进行登录。

那如果我不小心忘记了我的账号或者密码,或者我压根就不知道账号和密码,还有没有办法登录呢?答案是肯定的。

【学术探讨】万能密码原理剖析

比如一个登录功能,后台的SQL语句基本都是下面这个样子

select * from user where username='user' and password='pass'

假如用户名是admin,我们就给用户名填上 admin '#,密码随便输入,比如123456,后台接收参数,拼接到SQL中会变成这样:

select * from user where username='admin'#' and password='123456'

由于 # 在SQL中是注释符,注释符后面的内容不起作用,所以真正执行的SQL大概是下面这样

select * from user where username='admin'

SQL只会在数据库中查询用户名,而不是同时查询用户名和密码,这就意味着,只要用户名正确,就可以登录成功。

也就是说万能密码并不是一个真正意义上的密码,而是一种拥有不同变体的格式。

由于参数可以用双引号包裹、单引号包裹、甚至不包裹,万能密码可以有三种形式:

  • 数值型:admin #
  • 单引号字符串型:admin'#
  • 双引号字符串型:admin"#

这实际上是利用了注释 # 的特性,由于--也是SQL的注释,万能密码又多了三种形式:

  • 数值型:admin-- a
  • 单引号字符串型:admin'-- a
  • 双引号字符串型: admin"-- a

细心的同学可能注意到,--后面还有一个空格,这个空格是必须要有的,因为SQL的语法格式规定--和后面的注释内容必须间隔一个空格。

一些比较聪明的程序员,会在数据库中存储用户密码的MD5值,登录时先将密码MD5加密,再查数据库。

但这样也会存在问题,比如:

echo md5('240610708').PHP_EOL;
echo md5('s155964671a').PHP_EOL;

var_dump(md5('240610708') == md5('s155964671a'));

输出:

0e462097431906509019562988736854
0e342768416822451524974117254469
bool(true)

这是因为0e开头是科学计数法的格式,也就是 0 乘以n的n次幂,你别管后面的n是几,和0相乘肯定都是0。即0e开头的值,运算结果都是0。

这就意味着,如果一个会员账户密码是 240610708 ,那么输入 s155964671a 也能登录成功。

类似的值还有:

QNKCDZO   => 0e830400451993494058024219903391
240610708 => 0e462097431906509019562988736854
s878926199a => 0e545993274517709034328855841020
s155964671a => 0e342768416822451524974117254469
s214587387a => 0e848240448830537924465865611904
s214587387a => 0e848240448830537924465865611904

这里就简单列举这几种形式,如果你还知道其他形式,欢迎在评论区留言。文章来源地址https://www.toymoban.com/news/detail-481862.html

到了这里,关于【学术探讨】万能密码原理剖析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 攻防世界-inget(简单的SQL注入、万能密码)

    目录 1、手工注入(万能密码原理) 2、sqlmap实现 3、常用参数 打开链接,提示输入id并尝试绕过  尝试一下万能密码,使用逻辑语句使结果返回 构造payload /?id=\\\' or \\\'\\\'=\\\' 我们这里是以get传参的方式在前端给id传了个值,后端会对我们提交的内容进行查询 比如我们提交的是 id=12

    2024年02月13日
    浏览(35)
  • 【C++进阶(四)】STL大法--list深度剖析&list迭代器问题探讨

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C++从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C++   🔝🔝 本质重点: 本章重点讲解list的接口函数的熟悉 并且讲解list迭代器失效的特性 最后讲解迭代器的功能分类以及 算法库函数中谁能用谁不能

    2024年02月09日
    浏览(39)
  • 【Python实战】WIFI密码小工具,甩万能钥匙十条街,WIFI任意连哦~(附源码)

    不会吧不会吧,流量都这么便宜了不会还有人在蹭别人家WIFI吧?  但是也可以理解哈,试问谁还没有经历过这种时光那?就算是我,也曾经有过蹲在别人家大门 口蹭WIFi的事儿。这都是成长道路中不可避免的一环。毕竟免费的谁不想白嫖呢? 今天,我就为大家隆重介绍一款

    2024年02月15日
    浏览(44)
  • BUUCTF-MD5强弱比较-MD5()的万能密码-tornado框架注入-中文电码

    第六周 第三次 目录 学习到的知识 1.MD5强弱比较可以都可以使用数组绕过 2.基于MD5()的万能密码    ffifdyop WEB [BJDCTF2020]Easy MD5 ​编辑[护网杯 2018]easy_tornado Crypto 信息化时代的步伐 凯撒?替换?呵呵! Misc 神秘龙卷风 1.MD5强弱比较可以都可以使用数组绕过 2.基于MD5()的万能密码

    2023年04月12日
    浏览(57)
  • 安全计算的基本原理:一步步深入探讨

    安全计算是一种计算模型,其目的是保护计算过程和结果免受未经授权的访问和篡改。在现代数字世界中,安全计算成为了一项至关重要的技术,因为它可以保护我们的数据和信息安全。 在这篇文章中,我们将深入探讨安全计算的基本原理,揭示其核心概念和算法,并通过具

    2024年04月15日
    浏览(29)
  • 深入探讨Eureka的三级缓存架构与缓存运行原理

    在当今的软件开发领域,分布式系统已经成为了必 不可少的一部分。而在分布式系统中,服务的注册与发现是其中的重要组成部分之一。Netflix开源的Eureka便是一款优秀的服务发现框架,它采用了三级缓存架构来提供高效的服务发现与注册功能。本文将深入探讨Eureka的三级缓

    2024年02月11日
    浏览(40)
  • 深入探讨Java虚拟机(JVM)的工作原理与优化策略

    摘要:本文对Java虚拟机(JVM)的工作原理进行深入探讨,包括其内存管理、垃圾回收以及代码执行等方面。同时,文章还通过具体的代码示例,阐述了JVM的优化策略,旨在提高Java程序的性能。 Java虚拟机(JVM)是Java程序运行的基础平台,其重要性不言而喻。理解JVM的工作原

    2024年02月11日
    浏览(40)
  • Flutter原理篇:GestureDetector原理深度剖析及手势原理(上)

    今天我们来讲讲GestureDetector的深度剖析,只有了解原理了,才能知道手势冲突如何解决以及如何更灵活的运用手势。 我们先来看看GestureDetector的内部结构 1. GestureDetector 只是一个包装类,最终还是由 Listener 的 RenderPointListener 执行事件的操作 2.点击事件开始时会首先执行 RawG

    2024年04月27日
    浏览(38)
  • CVE-2023-28708 原理剖析

    这应该不是一个严重的漏洞,可能评分只能为低,因为并没有什么卵用。 话不多说,直接进入正题 我的复现环境: tomcat-8.5.50 首先我们得简单写一个servlet,当然不写也没事,因为我们的分析到不了处理servlet这一步,只用tomcat默认提供的ROOT就行 首先我们需要在web.xml中注册

    2024年02月09日
    浏览(38)
  • Elasticsearch原理剖析

    Elasticsearch集群方案由EsMaster、EsClient和EsNode1、EsNode2、EsNode3、EsNode4、EsNode5、EsNode6、EsNode7、EsNode8、EsNode9进程组成,如下图所示,模块说明如表下所示。 说明如表: 名称 说明 Client Client使用HTTP或HTTPS协议同Elasticsearch集群中的EsClient以及各EsNode实例进程进行通信,进行分布式索

    2024年02月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包