sql注入 [GXYCTF2019]BabySQli1

打开题目

多次尝试以后我们发现存在一个admin的账号,但是密码我们不知道

我们尝试一下万能密码

admin' or 1=1 -- q

报错

我们尝试bp抓一下包看看

看着很像编码

先去base32解码

再base64解码

得到

我们从这个sql语句中得到注入点为name

根据报错信息我们知道是单引号的字符型注入

用万能密码1' or '1'='1'报错,猜测是过滤了or

我们用union猜测列名字段数

这样我们便得到列名字段数为3

判断‘’user‘’在哪个列

1' union select 'admin',2,3 -- q

1' union select 1,'admin',3 -- q

1' union select 1,2,'admin' -- q

通过用户所在列测试,得出了存在用户admin,又得出了admin用户在第二列,也就是username字段那一列。

查看题目源代码吧

在源代码下找到了search.php

代码如下

<!--MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Do you know who am I?</title>
<?php
require "config.php";
require "flag.php";// 去除转义
if (get_magic_quotes_gpc()) {function stripslashes_deep($value){$value = is_array($value) ?array_map('stripslashes_deep', $value) :stripslashes($value);return $value;}$_POST = array_map('stripslashes_deep', $_POST);$_GET = array_map('stripslashes_deep', $_GET);$_COOKIE = array_map('stripslashes_deep', $_COOKIE);$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}mysqli_query($con,'SET NAMES UTF8');
$name = $_POST['name'];
$password = $_POST['pw'];
$t_pw = md5($password);
$sql = "select * from user where username = '".$name."'";
// echo $sql;
$result = mysqli_query($con, $sql);if(preg_match("/\(|\)|\=|or/", $name)){die("do not hack me!");
}
else{if (!$result) {printf("Error: %s\n", mysqli_error($con));exit();}else{// echo '<pre>';$arr = mysqli_fetch_row($result);// print_r($arr);if($arr[1] == "admin"){if(md5($password) == $arr[2]){echo $flag;}else{die("wrong pass!");}}else{die("wrong user!");}}
}?>

换种方式猜测
username数据表里面的3个字段分别是flag、name、password。
猜测只有password字段位NULL
咱们给参数password传入的值是123
那么传进去后,后台就会把123进行md5值加密并存放到password字段当中
当我们使用查询语句的时候
我们pw参数的值会被md5值进行加密
然后再去与之前存入password中的md5值进行比较
如果相同就会输出flag

这里其实就和md5弱比较绕过的原理一样

md5不能处理数组,如果是数组则会返回NULL

得到flag

或者

pw的参数随便写,但是要对传入的那个值进行md5值加密

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全(一)--网络环境构成,系统的安全

2. 网络攻防环境 目标 了解攻防环境构成了解入侵检测系统&#xff08;平台&#xff09;的部署位置 2.1. 环境构成 2.1.1. 环境框图 一个基本的网络攻防实验环境包括&#xff1a;靶机、攻击机、入侵检测分析系统、网络连接四部分组成。 一个基础的网络攻防实验环境需要如下…

提取不重复的整数

输入一个 int 型整数&#xff0c;按照从右向左的阅读顺序&#xff0c;返回一个不含重复数字的新的整数。 保证输入的整数最后一位不是 0 。 输入&#xff1a;9876673 输出&#xff1a;37689 解题思路&#xff1a; 1、将输入的整数分别与10 相除&#xff0c;后得到的余数&…

阿里云租赁费用_阿里云服务器多配置报价表

阿里云服务器租用费用&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、轻量应用服务器2核2G3M带宽轻量服务器一年87元&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;ECS云服务器e系列2核2G配置99元一年、2核4G配置365元一年、2核8G配置522元一年…

Git多人协作(一)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言 由于博主是一个人&#xff0c;所以博主为完成这篇文章&#xff0c;在Linux下克隆了一个仓库&#xff0c;在windows下克隆了一个仓库&#xff0c;以此来模拟多人协作开发。而实际开发中&#xff0c;每个人都有自己的git…

【CSP】202305-1_重复局面Python实现

文章目录 [toc]试题编号试题名称时间限制内存限制题目背景问题描述输入格式输出格式样例输入样例输出样例说明子任务提示Python实现 试题编号 202305-1 试题名称 重复局面 时间限制 1.0s 内存限制 512.0MB 题目背景 国际象棋在对局时&#xff0c;同一局面连续或间断出现3次或3…

python3安装lifelines

目录 一、环境 二、安装lifelines 出现问题 三、测试导入 一、环境&#xff1a; jupyter notebook中新建ipynb文件 二、安装lifelines pip install --upgrade --no-deps githttps://github.com/CamDavidsonPilon/lifelines.git出现问题&#xff1a; 缺少模块autograd、f…

sqlite3.44.2的编译

文章目录 sqlite3.44.2的编译概述笔记解决shell.c编译报错的方法整理 - 正常可用的编译脚本过程剩下的事情验证编译出的输出是否可以给工程正常使用?END sqlite3.44.2的编译 概述 想从源码编译一份Sqlite3.44.2出来. 编译sqlite3.44.2前置需要的TCL环境已经编译出来到了, 做…

软件手册目录

引言 1.1 介绍软件手册的目的 1.2 解释软件的背景和关键功能 安装与配置 2.1 硬件和软件要求 2.2 下载和安装 2.3 配置和设置 入门指南 3.1 界面导览 3.2 基本操作 3.3 软件功能概述 功能详解 4.1 功能1 4.1.1 功能描述 4.1.2 操作步骤 4.1.3 高级选项 4.2 功能2 … 常见问…

归并排序的非递归实现

归并排序的核心思想是分治&#xff0c;也就是将原数组切分成两个子数组分配排序再将排好序的两个子数组进行合并&#xff0c;之前的文章已经讲过递归版本的实现&#xff0c;现在我们看看非递归版本的实现 第一种思路&#xff1a;用步长来切分数组&#xff0c;也就是我们在切分…

docker安装informix

docker安装informix 通过docker下载镜像 docker pull ibmcom/informix-developer-database 启动容器 docker run -it -d --name informix --privileged -p 9088:9088 -p 9089:9089 -p 27017:27017 -p 27018:27018 -p 27883:27883 -e LICENSEaccept ibmcom/informix-develope…

RestTemplate发送请求、基本spring自带RestTemplate发送请求、RestTemplate设置请求头

今天分享RestTemplate&#xff0c;直接上代码&#xff1a; 因个人需求需要重写RestTemplate&#xff0c;并设置请求头 import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvide…

学习Python能给我们带来什么?有什么帮助?

文章目录 前言学习Python能做什么1、抓取各类数据、文本等信息2、批量清洗和处理数据3、提供可视化工具4、进行深度学习 Python的用途有哪些普通人学习python有什么好处关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python…

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 4 章:控制温度和 Top-p 采样

要求CHATGPT高质量回答的艺术&#xff1a;提示工程技术的完整指南—第 4 章&#xff1a;控制温度和 Top-p 采样 控制温度和 Top-p 采样是用于管理人工智能语言模型在生成文本时输出的创造性、连贯性和集中性的技术。 让我们打一个比方来简化它&#xff1a;把人工智能想象成一…

Linux挂载配置本地yum源

1.vi /etc/yum.repos.d/redhat.repo 2. [baseos] namebaseos baseurlfile:///mnt/BaseOS #enabled:默认为1 enabled1 gpgcheck0 [appstream] nameappstream baseurlfile:///mnt/AppStream enabled1 gpgcheck0 3. mount /dev/sr0 /mnt/ 4.yum clean all 5.yum makecache

神秘鸭是如何让你的手机控制你的电脑的?

神秘鸭 神秘鸭即是一个应用&#xff0c;它能让手机语音助手、智能音箱变的更为强大&#xff01;通过神秘鸭&#xff0c;您的手机语音助手、智能音箱可以用来控制电脑、智能家居、DIY的物联网设备。 支持的手机、平板品牌 Apple 华为 小米 三星 OPPO VIVO 一加 当然不代表仅支…

感兴趣书单汇总

文章目录 声明科幻小说哲学书数学 声明 本帖持续更新 科幻小说 《三体》&#xff08;已读&#xff09;《献给阿尔吉侬的花束》&#xff08;已读&#xff09; 哲学书 数学 《Principia Mathematica》&#xff08;未读&#xff09;&#xff1a;怀特海德和罗素所著&#xff…

C# Solidworks二次开发:创建坐标系方法和获取零件质心坐标方法详解

今天要讲的是如何在Solidworks创建坐标系和获取零件的质心方法详解&#xff0c;创建坐标系的API如下所示&#xff1a; 1、创建坐标系API如下所示&#xff1a;Feature swCoordSys1 swFeatMgr.InsertCoordinateSystem(false, false, false); 其中方法的输入参数有三个&#xf…

1466. 重新规划路线 --力扣 --JAVA

题目 n 座城市&#xff0c;从 0 到 n-1 编号&#xff0c;其间共有 n-1 条路线。因此&#xff0c;要想在两座不同城市之间旅行只有唯一一条路线可供选择&#xff08;路线网形成一颗树&#xff09;。去年&#xff0c;交通运输部决定重新规划路线&#xff0c;以改变交通拥堵的状况…

SpringBoot 知识梳理

学习目标 掌握基于 SpringBoot 框架的程序开发步骤熟练使用基于 SpringBoot 配置信息修改服务器配置基于 SpringBoot 的完成 SSM 整合项目开发 1 SpringBoot 简介 1.1 入门案例 1.1.1 步骤 ① &#xff1a;创建新模块&#xff0c;选择 Spring 初始化&#xff0c;并配置模块…

Doris 编译报错 Error: flex version (2.5.37) must be greater than or equal to 2.6.0

Doris 编译过程报错 Error: flex version (2.5.37) must be greater than or equal to 2.6.0yum update flex 不生效 下载flex 安装包 https://github.com/westes/flex/releases解压 tar -xvf flex-2.6.4.tar