目录

  • 1 实验介绍
    • 1.1 实验目的
    • 1.2 实验环境
  • 2 实验
    • 2.1 实验分析
    • 2.2 实验过程
  • 3 总结

1 实验介绍

1.1 实验目的

  1. 由于网页服务端对代码的过滤不够严谨,可能会存在万能用户名或万能密码绕过的风险。
  2. 加深对网页代码和SQL代码的理解。

1.2 实验环境

  1. 实验靶场——虚拟机:本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站,win2008及phpstudy的安装过程可以参考《win2008R2SP1+WAMP环境部署》,网站的搭建过程可以参考《综合实验:一个简单丑陋的论坛网站》。
  2. 本实验在该论坛的登录页面进行实验。
  3. 该网站对登录账号密码的验证代码如下所示。
<meta charset = "utf-8">
<?php
include "../inc/dblink.inc.php";
?>
<?php
if (isset($_POST['userSubmit'])){//var_dump($_POST);$sql = "select * from users where name = '".$_POST['userName']."' and password ='".md5($_POST['userPass'])."'";//echo $sql;if ($results = mysqli_query($link,$sql)){if (mysqli_num_rows($results) > 0){setcookie ('name',$_POST['userName'],time()+3600,"/");echo "登录成功,请返回<a href = '../index.php'>首页</a>或<a href = './index.php'>个人中心</a>";}else{echo "账号或密码错误,请<a href = './login.php'>重新输入</a>";}}else{die(mysqli_error($link));}
}else{echo "请输入账号密码";
}
?>
<html>
<form method = "post" target = "_blank">
用户名:<input type = "text" name = "userName"><br>
密码:<input type = "password" name = "userPass"><br>
<input type="submit" name="userSubmit" value="登录">
</form>
</html>
<?php
mysqli_close($link);
?>

2 实验

2.1 实验分析

  1. 上述代码第8行用于在数据库中检验客户端输入账号密码是否存在,而能否登录成功关键在于第10行 if 语句判断条件是否为真,也就是说只要构造的用户名或密码能让SQL语句能成功查询并返回结果,就能实现登录。
  2. 由于SQL语句采用的是单引号闭合的方式,因此所构造的语句需要注意屏蔽前后的单引号,采用不同用户名及密码的组合进行实验结果如下。
用户名 密码 结果 分析
aaa’ or 1=1# 随意 成功 采用单引号屏蔽变量前的单引号,采用#注释掉变量后续语句
aaa’ or ‘1’='1 随意 失败 因为and的优先级比or的优先级高,
语句先执行'1'='1' and password = '随意'语句得到false,
再执行name = 'aaa' or false,结果还是false,
所以SQL语句无法查询到内容,登录失败.
a’ or ‘1’='1 随意 成功 与上一组合不同的是,此处a是刚好碰到数据库中有该用户名,
所以or语句执行成功,适合用于爆破特定用户名
随意 aaa’ or 1=1# 失败 由于密码字段在代码中被MD5编码过,无法实现语句构造的功能
随意 aaa’ or ‘1’=‘1’ 失败 同上
  1. 当后台代码对输入参数进行过滤转换时,需要注意思考之前学过的各种绕过技巧。

2.2 实验过程

  1. 在登录界面输入用户名aaa' or 1=1#,密码随意,如下,点击登录。
  2. 可以看到成功登录。
  3. 点击个人中心,可以看到目前登录的账户是数据库中注册的第一个账号。

3 总结

  1. 加深理解SQL语句构造与绕过;
  2. 掌握万能用户名与密码检测的方法。

【业务安全04】万能用户名及万能密码相关推荐

  1. 万能用户名和万能密码

    万能用户名 any' union select * from user – (后面有个注释符) 联合查询,是查询的结果大于1,为真 万能用户名防御 PDO $username=$REQUEST['us ...

  2. 23-mysql万能用户名和万能密码

    1.万能密码 注入的时候写入   用户名  aa   密码  'bb' or 1=1 2.万能用户名 注入的时候 用户名为(注意:不加sql中的分号): aa   union select * fro ...

  3. php万能注入密码,php下的SQL注入万能用户名和密码

    1.针对有单引号的情况 : 万能密码 : select * from users where username='xxxx' and password='xxxxxx' or 1='1'; 万能用户名 ...

  4. WIFI密码破解 WIFI万能钥匙 显示连接密码去除广告优化版

    WIFI密码破解 WIFI万能钥匙 显示连接密码去除广告优化版 ◎基于国内最新版(理论支持安卓P) ◎更换包名,不更新,不翻车,稳定好用 ◎全新显密,获取到的密码将在热点下方着色显示 ◎智能显密,没有 ...

  5. ubuntu-18.04 修改用户名密码

    1. 开放root登录 设置root密码 $ sudo passwd root 切换到root 用户 $ sudo -i 修改/etc/pam.d/gdm-autologin $ vim /etc/p ...

  6. Ubuntu18.04设置1位数简单密码(三十二)

    Ubuntu18.04设置1位数简单密码 大家用Ubuntu设置密码是会遇到一个痛点,假如设置简单的密码时,会提示让设置更复杂的密码,下面通过一种方法可以设置简单密码. # sudo passwd 用 ...

  7. dropbear 用户名_openwrt默认密码

    Openwrt没有现成的密码!你必须要在你通过telnet第一次登陆的时候设置一个.任何全新的被安装上的Openwrt镜像,都会开启这些默认设置: dnsmasq (DHCP daemon) (一个负 ...

  8. 进入计算机用户名和密码,巧用U盘进入设密码系统免于输入用户名和登录密码...

    巧用U盘进入设密码系统免于输入用户名和登录密码 发布时间:2014-04-30 17:27:58   作者:佚名   我要评论 在登录时免于输入用户名和登录密码,而一旦移走了这些设备,系统便可以设置为 ...

  9. JWT 添加用户名或邮箱 密码校验

    JWT 用户名或邮箱 密码校验 参考 https://learnku.com/articles/6216/laravel-uses-jwt-to-implement-api-auth-to-build ...

  10. 修改用户名_新华美育查找用户名及修改密码的方法分享

    阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以免费收到最新内容了.每天都有分享,完全是免费订阅,请放心关注. 声明:本文转载自网络,如有侵权,请在后台留言联系我 ...

最新文章

  1. 第19课:Spark高级排序彻底解密
  2. Future 和 ExecutorCompletionService 对比和使用
  3. python在mac上_在Mac上Python多版本切换
  4. VHDL设计脉搏计的课程设计
  5. npm --- 包的发布与导入
  6. SaaS模式云数据仓库:持续保护云上数据及服务安全
  7. 千亿云计算产业加速跑 多云管理助推上云率
  8. 修改软件的ico图片方法
  9. 在ppt中怎么加入倒计时 里面怎么加入倒计时【方法】
  10. 2022年电工(初级)操作证考试题库及模拟考试
  11. win7搜索文件内容
  12. Docker学习(2)-Docker基础1
  13. u盘制作启动盘后空间容量变小解决方法
  14. 香农采样定理和奈奎斯特采样定理
  15. webpack css-loader style-loader scss-loader cssloader模块化
  16. 机器学习-无监督学习-聚类:聚类方法(二)--- 基于密度的聚类算法【DBSCAN文本聚类算法,密度最大值文本聚类算法】
  17. 硬解直显模式实现抓图功能(二)
  18. Richard Matthew Stallman
  19. 利用java代码一键生成数据库文档
  20. odoo12 学习: 无效视图 xxxx xxxx xxxx 定义 False

热门文章

  1. java ppt模板_java循环ppt模板
  2. 聊天类APP的测试点
  3. Vue+websocket+django实现WebSSH demo
  4. Git遇到的问题:This is not a valid source path/URL
  5. WebClient Exceeded limit on max bytes to buffer : 262144 异常解决
  6. linux python2.7安装pip_linux安装pip2.7
  7. Findbugs异常总汇
  8. python之论文降重工具
  9. 九连环问题c语言程序,九连环游戏的算法源代码
  10. 《Python知识手册》V2.1版,高清PDF免费获取