原题链接:http://www.wechall.net/challenge/training/mysql/auth_bypass1/index.php

题目告诉我们这是一个经典的mysql注入挑战,我们的任务很简单,就是用admin登录,而且你被给了源码,而且有高亮版本

我们点击source code和highlighted version两个超链接就可以分别看到两个版本(普通与高亮,其实代码都一样,只不过看你喜欢哪个,我觉得高亮要方便阅读一点)

首先是表格结构的注释:users表分三个列,userid,username,password,id和username不用管,主要的是password,因为题目已经告诉我们username就是admin,根据注释password是32位的char类型,ascii类型显示,不能为空

然后是username和password的传递:判断用户名和密码是否已经发送给服务器,其中的Common::getPostString是调用已有函数,功能为从表单中获取字符串信息;auth1_onLogin为下边的自定义函数,功能为验证用户名和密码

然后又是一堆的代码,再是一个提示我们利用的代码。这是一个js函数声明。,数据库通过ayth1_db()函数链接,password通过md5加密,然后是一个username和password的连接函数。这部分就是之前提到的自定义函数,用来处理表单提交的数据。函数与表单之间通过参数“username”和“password”传递数据,这里只需要知道从html表单中输入的username和password就可以代入到这里的query中。接着result=result=db->queryFirst($query)处理MySQL语句并且将结果返回给result,如果查询结果不是false,说明结果存在。$result[‘username’]) === ‘admin’判断用户是否是admin,如果是说明管理员登录,完成登陆过程。

读到这里基本上解题方法就出来了,我们主要的注入句是

一条很简单的MYSQL语句,我们知道username是admin但是我们不知道password

所以我们直接输入正确的username然后注释掉后面的password判断,构造payload:admin’#

#的作用是注释掉后面的内容,所以我们就构造了query的语句为

$query = "SELECT * FROM users WHERE username='admin'#' AND password='$password'";

形成SELECT * FROM users WHERE username='admin'

所以这个问题就解决了

Training: MySQL I的更多相关文章

  1. [WeChall] Training: MySQL I (MySQL, Exploit, Training)

    Training: MySQL I (MySQL, Exploit, Training) MySQL Authentication Bypass - The classic This one is t ...

  2. Training: MySQL I (MySQL, Exploit, Training)

    题目链接:http://www.wechall.net/challenge/training/mysql/auth_bypass1/index.php?highlight=christmas 的确是非 ...

  3. MYSQL Training: MySQL I

    让以admin身份登录.源代码: 非常easy的注入 在username输入 admin' OR '1'='1 OK.

  4. 0x01 Wechall writeup

    目录 0x01 Wechall writeup Limited Access Training: Crypto - Caesar II Impossible n'est pas français Tr ...

  5. 0x00 Wechall writeup

    目录 0x00 Wechall writeup Training: Get Sourced Training: ASCII Encodings: URL Training: Stegano I Tra ...

  6. MySQL SQL Training

    源于知乎:50道SQL练习题 一.表数据 1.学生表——Student ),Sname ),Sage )); ' , '赵雷' , '1990-01-01' , '男'); ' , '钱电' , '1 ...

  7. 数据库学习之MySQL进阶

    数据库进阶   一.视图                                                                            数据库视图是虚拟表或逻辑 ...

  8. 在linux上安装MySQL数据库,并简单设置用户密码,登录MySQL

    在新装的Centos系统上安装MySQL数据库. <p><a href="http://www.cnblogs.com/tijun/">提君博客原创< ...

  9. 涂抹mysql笔记-mysql管理工具

    五花八门的mysql管理工具<>mysql提供的命令行工具 mysql_install_db:mysql建库工具,在源码安装mysql环节我们使用过. mysql_safe:mysql启动 ...

  10. [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:

    [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...

随机推荐

  1. Visual Studio 2022 Community 不完全攻略

    0. 前言 建议结合视频阅读哦 Visual Studio 2022 Community 不完全攻略 有问题或者意见欢迎评论 ! 1. 下载&安装 Visual Studio Communit ...

  2. Python数据科学手册-Numpy的结构化数组

    结构化数组 和 记录数组 为复合的.异构的数据提供了非常有效的存储 (一般使用pandas 的 DataFrame来实现) 传入的dtpye 使用 Numpy数据类型 Character Descri ...

  3. CentOS使用yum方式安装yarn和nodejs

    # 使用epel-release.repo源安装的nodejs版本是6.17.1,有些前端项目使用的话会提示版本太低,具体下图 # 命令执行后的详细情况:curl -sL https://rpm.no ...

  4. Jenkins 中使用 Git Parameter 插件动态获取 Git 的分支

  5. 1-Mysql数据库简洁命令

    1-进入mysql数据库 mysql -u root -p 2-创建数据库 mysql> CREATE DATABASE serurities_master; mysql> USE ser ...

  6. Android EGL 实践

    本项目为 SurfaceView 和 TextureView 封装了 EGL 环境管理以及 Render 线程,可以和 GLSurfaceView 一样使用 OpenGLES 进行渲染.并尝试使用 O ...

  7. mac通过docker一键部署Jenkins

    目录 mac通过docker一键部署Jenkins 一.前言 二.系统配置 三.安装步骤 Dockerhub查看镜像地址 1.一键安装 1.1.下载脚本 1.2.安装程序 1.2.1.安装程序详情 1 ...

  8. 关于IDEA中Tomcat中文乱码的解决方案

    进入Tomcat/config文件夹下,打开编辑logging.properties 然后查看该文件内是否存在java.util.logging.ConsoleHandler.encoding = U ...

  9. 关于aws-Global区的新账户的一些限制坑点

    在使用global-aws的时候,遇到几个限制坑点记录如下(都是需要发请求找aws服务支持才能提高) 1.关于Elastic IPs的限制,默认为 5,这样在ec2下的Elastic IPs中最多只能 ...

  10. C言语语法总结(随时更新)

    一.gcc1. gcc xxx.c -o xxx #把原代码编译成可执行文件xxx2. gcc -c xxx.c #编译: 把原代码编译xxx.o后辍的目标文件3. gcc xxx.o -o xxx ...