当前位置: 首页 > news >正文

大型网站怎样做优化PHP营销推广的主要方法

大型网站怎样做优化PHP,营销推广的主要方法,django校园网站开发,软件公司开发目录 第13关 万能密码登录 1.打开靶场 2.源码分析 3.渗透方法1 4.渗透方法2 第13关 万能密码登录 本文通过《webug靶场第13关 万能密码登录》来进行渗透实战。 万能密码是利用 SQL 注入漏洞,构造出能够绕过登录验证的特殊密码字符串。通常,登录验…

目录

第13关 万能密码登录

1.打开靶场

2.源码分析

3.渗透方法1

4.渗透方法2


第13关 万能密码登录

本文通过《webug靶场第13关 万能密码登录》来进行渗透实战。

万能密码是利用 SQL 注入漏洞,构造出能够绕过登录验证的特殊密码字符串。通常,登录验证的 SQL 查询语句类似于SELECT * FROM users WHERE username = '$username' AND password = '$password'。攻击者通过输入特殊的密码,如' OR '1'='1',可以使 SQL 语句的条件永远为真,从而绕过验证,以任意用户的身份登录系统。

  • 危害:万能密码的主要危害是导致系统的登录验证机制失效,攻击者可以轻易地获取系统的访问权限,进而进行其他恶意操作,如窃取数据、篡改信息等。

为了防止 SQL 注入和万能密码攻击,开发人员应该对用户输入进行严格的验证和过滤,使用参数化查询或存储过程来避免将用户输入直接嵌入到 SQL 语句中,同时对数据库的权限进行合理的设置,限制用户对敏感数据的访问。

1.打开靶场

进入靶场的第11关,万能密码登录,网址如下所示。

http://192.168.71.1/webug4/control/sqlinject/universal_passwd.php

此时进入了登陆页面,需要输入用户名和密码,如下图所示。 

2.源码分析

对源码进行代码审计,如下为原始代码。

<?php/*** payload 1' or 1=1 #*/
require_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}if (isset($_POST["username"]) && isset($_POST['password'])) {if (!empty($_POST['username']) && !empty($_POST['password'])) {$username = $_POST['username'];$password = $_POST['password'];$sql = "SELECT * FROM user WHERE username = '{$username}' AND password = '{$password}'";$res = $dbConnect->query($sql);if (mysqli_num_rows($res) >=1 ){$s = "SELECT * FROM env_list WHERE envName LIKE '%万能密码登陆%'";$r = $dbConnect->query($s);$row = mysqli_fetch_assoc($r);echo "flag:  ".$row['envFlag'];die();}}
}
require_once TPMELATE."/universalpasswd.html";

这段代码实现了一个不安全的登录验证功能,主要逻辑包括:

  • 检查用户会话状态,未登录则跳转到登录页

  • 接收用户提交的username和password参数

  • 直接将用户输入拼接到SQL查询语句中验证凭据

  • 如果查询返回结果,则显示一个包含"万能密码登陆"相关flag的环境变量

经过分析,这段代码有多个安全漏洞,具体说明如下所示:

  • SQL注入漏洞:直接将用户输入拼接到SQL语句中,攻击者可以构造恶意输入如admin' -- 来绕过认证

  • 密码明文存储:代码显示密码是明文存储和比较的,不符合安全规范

  • 敏感信息暴露:直接输出flag等敏感信息

  • 缺乏错误处理:没有对数据库操作失败的情况进行处理

本关卡如果实现万能登陆,需要利用SQL注入漏洞,接下来对数据库相关代码进行注释解释。

// 检查是否提交了username和password参数
if (isset($_POST["username"]) && isset($_POST['password'])) {// 确认参数值不为空if (!empty($_POST['username']) && !empty($_POST['password'])) {// 获取用户输入的用户名和密码(未做任何过滤处理)$username = $_POST['username'];$password = $_POST['password'];// 危险操作:直接将用户输入拼接到SQL语句中(存在SQL注入漏洞)$sql = "SELECT * FROM user WHERE username = '{$username}' AND password = '{$password}'";// 执行SQL查询$res = $dbConnect->query($sql);// 检查是否查询到结果(只要匹配到1条及以上记录就通过验证)if (mysqli_num_rows($res) >=1 ){// 查询环境变量表中包含"万能密码登陆"的记录$s = "SELECT * FROM env_list WHERE envName LIKE '%万能密码登陆%'";$r = $dbConnect->query($s);// 获取查询结果$row = mysqli_fetch_assoc($r);// 直接输出flag(存在信息泄露风险)echo "flag:  ".$row['envFlag'];// 终止脚本执行die();}}
}

最关键的SQL源码如下所示,参数使用单引号闭合。

SELECT * FROM user WHERE username = '{$username}' AND password = '{$password}'

该代码存在严重的SQL注入漏洞,因为:

  1. 未过滤用户输入:直接将POST['username']和P​OST['username']和_POST['password']拼接到SQL语句中

  2. 未使用预处理语句:采用危险的字符串拼接方式构造SQL查询

  3. 错误信息暴露:认证失败时会暴露原始SQL语句结构

攻击者可以利用万能密码绕过登录验证:

username: 1' or 1=1 #
password: [任意值]

这会使SQL语句变为:

SELECT * FROM user WHERE username = '1' or 1=1 #' AND password = '[任意值]'

 其中#注释掉后续条件,or 1=1使查询总是返回真,从而绕过身份验证直接获取flag。

3.渗透方法1

 可以通过构造如下注入命令。

用户名 admin
密码   ' or '1'='1

传入参数后SQL语句如下所示。

SELECT * FROM user WHERE username = 'admin' AND password = '' or '1'='1'

此时相当于如下命令,可以绕过登陆限制直接形成注入命令。

 SELECT * FROM user WHERE username = 'admin'

根据分析,用户名和密码输入如下内容。

admin
' or '1'='1

登录成功后显示flag,渗透成功。

4.渗透方法2

由于SQL语句中的#和-- 是代表注释符, 可以通过构造如下注入命令,用户名输入万能注入语句' or 1=1#或者' or 1=1--  (注意--后面加上空格),密码随便输入。

用户名 admin' or 1=1#
密码   ljn
或者
用户名 admin' or 1=1-- 
密码   ljn

传入参数后SQL语句变为如下所示。

SELECT * FROM user WHERE username = 'admin'or 1=1# AND password = 'ljn'
SELECT * FROM user WHERE username = 'admin'or 1=1--  AND password = 'ljn'

此时相当于如下命令,可以绕过登陆限制直接形成注入命令

 SELECT * FROM user WHERE username = 'admin'

根据分析,用户名和密码输入如下内容。

admin' or 1=1#
ljn

或者如下内容。

admin' or 1=1-- 
ljn

 登录成功后显示flag,渗透成功。

http://www.dtcms.com/a/490075.html

相关文章:

  • 【泛3C篇】AI深度学习在手机前/后摄像头外观缺陷检测应用方案
  • 建设网站需要申请网站建设与管理专业好找工作吗
  • 绿色在线网站模板下载工具别人做的网站不能用怎么办
  • Initiater for mac 小巧的菜单栏OCR工具
  • ntfs可以用在mac上吗?3 种实用方案,解决Mac与NTFS硬盘兼容问题
  • 数据结构——二十、树与森林的遍历
  • 洛杉矶服务器常见问题汇总与解决方案大全
  • Linux云计算基础篇(27)-NFS网络文件系统
  • Mac安装使用Gradle
  • 夜莺监控设计思考(二)边缘机房架构思考
  • AI+大数据时代:时序数据库的架构革新与生态重构
  • 【记录】MAC本地微调大模型(MLX + Qwen2.5)并利用Ollama接入项目实战
  • wordpress 导购站模板接私活app有哪些平台
  • 有哪些网站可以做推广十大奢侈品牌logo图片
  • 服务注册 / 服务发现 - Eureka
  • 2025机器人自动化打磨抛光设备及汽车零件打磨新技术10月应用解析
  • bk7258 libzip崩溃之解决
  • 【Android】【底层机制】组件生命周期以及背后的状态管理
  • CPM:CMake 包管理详细介绍
  • D3.js + SVG:数据可视化领域的黄金搭档,绘制动态交互图表。
  • 【个人成长笔记】在 QT 中 SkipEmptyParts 编译错误信息及其解决方案
  • 设计模式篇之 备忘录模式 Memento
  • dw做的网站放文件夹网页生成桌面快捷方式
  • 2017流行的网站风格随州网站建设价格
  • 鸿蒙:使用媒体查询监听屏幕方向、切换横竖屏
  • 8.list的使用
  • 网页跳转github镜像
  • 安灯系统(Andon)如何为汽车工厂打造零延迟响应
  • C++(条件判断与循环)
  • 温州建设局网站首页中国企业名录黄页