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

做网站网络近期热点话题

做网站网络,近期热点话题,网络营销平台的主要功能,各大引擎搜索入口目录 第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/wzjs/837261.html

相关文章:

  • 自动建站源码注册公司代理有哪些
  • 北京网站模仿洛阳市建设厅网站
  • 网站哪里买外链海外学校网站建设
  • 丹徒做网站上海工商网上公示
  • 贵阳专业做网站公司有哪些网站开发实训指导书
  • 做商城网站技术要点饮料包装设计
  • 资源站建站技术如何去掉wordpress版权信息
  • 怎么提交自己的网站建设局工程网站
  • 苏州做网站最好公司正规网站制作公司是哪家
  • 学校网站建设年度总结如何做网站推广的策略
  • 江西安福县建设局网站wordpress 权限
  • 普宁网站建设公司北京好一点的微网站开发公司
  • 电商的推广方式有哪些seo最好的网站
  • 发簪做的比较好的网站rewite wordpress
  • 选择锦州网站建设有的网站域名解析错误
  • 做网站用的腾讯云服务器wordpress国外空间
  • 网站是怎么做360网站关键词排名优化
  • 秀设计网站建设个招聘网站
  • 广州建站服务商南京制作网页公司
  • 漆包线 东莞网站建设网站建设作者墙这个模板
  • 一般网站建设费用山西焦煤集团公司网站
  • thinkphp做网站好吗极速网站建设定制价格
  • 怎么查询网站开发时间计算机软件开发培训机构
  • 马鞍山做网站的公司wordpress 老萨
  • 服务器出租网站网站建设师薪资
  • 免费公司主页网站网站系统jsp模板
  • 白山市住房和建设局网站wordpress小说文章发布软件
  • 网站死链查询诗歌网站开发意义
  • 网站有死链怎么办wordpress获取动态页面
  • 芜湖市网站建设绵阳科技城建设