Web三漏洞学习(其二:sql注入)
靶场:NSSCTF 、云曦历年考核题
二、sql注入
NSSCTF
【SWPUCTF 2021 新生赛】easy_sql
这题虽然之前做过,但为了学习sql,整理一下就再写一次
打开以后是杰哥的界面

注意到html网页标题的名称是 “参数是wllm”

那就传参数值试一试
首先判断注入类型(数字型或字符型)
传1

传2 没有回显
同样的,后面的3456都没有回显
光传abc也没有回显

所以应该是数字型注入
然后判断闭合方式
接下来传1' (单引号)
出现报错

然后传1" (双引号)
页面又有回显

回到报错的 1'页面,分析报错语句
注意看这个位置

这里要记住的是:无论是单引号还是双引号在sql语句中都是成对出现的,包括 ( ) { } 【】各种括号 。
所以上面的报错句应该注意到最后的一个引号,要成对则前面必有一个单引号与它成一对。
也就是说,在这个报错语句中,一对单引号 ' ' 包裹着刚才我们注入的内容:' 1' '
所以这一堆引号就该这么拆:
' ' 1' ' LIMIT 0,1 '
所以包裹着我们注入的 1' 的就是单引号 ' ' 。也就是说明这题的闭合方式是单引号。
既然如此那加个注释: --+
目的是把单引号注释掉

发现页面没有报错了,有了回显,这就说明闭合方式判断正确
这里还有一个验证是否存在sql漏洞的方法:
当输入1=1时(条件为真),页面正常显示或有回显

当输入1=2时(条件为假),页面未正常显示

这就说明我们输入的内容数据库是能够执行的,即存在sql注入漏洞
那么接下来就是一系列的爆数据库,直到爆出需要的信息(flag)
正规的讲叫先判断列数
语句是order by
比如现在一列列爆
第一列,有

第二列有

第三列也有
但是到了第三列就会显示它不认识了

包括后面的第5列也如此

也就是说,这个数据库里的表总的只有三列
既然查出了总列数,接下来就需要联合查询所有列数下的数据,语句 union select
这里要注意:需要把传入参数的值1改为-1
然后开始联合查询

可以看到用户名位于第2列的位置,密码位于第3列的位置 (回显位为2、3位)
接下来可以看看这两列的数据,一列列来,第2列:

有了 ,可以看到是test_db
第3列:

都是test_db ,这当然的,两个都在一个数据库(test_db)里面
爆出来的这个是数据库名
接下来查表名(table_name)
然后出现这么个东东

英语也不太好,翻译一下

ouou 我知道了,我只改了第2列数据库名的位置,忘了后面还有个第3列了
大意了haha

加入第3列

提示返回的信息超过一行

一个解决办法就是使用group_concat把table_name变为一行即可 group_concat(table_name)
得到有两个表的表名

接下来查列名(column_name ):
对应的把刚刚的表名table_name改为column_name(列名);
tables改为columns,最后加上刚查到的表名users
执行
select group_concat(column_name) from information_schema.columns where table_schema='test_db' and table_name='users'

得到列名为password
都查出来了,select后面的就全扔掉,看看列名为password的数据列里面有什么,有没有想要的数据(flag)但这里好像出了点问题,爆出来又是yyy(不对,没问题,我查的就是password,而password为yyy刚开始就告诉我了),所以问题在于没有爆出可用的列名

回去找了一下,应该是上一步爆列名的问题,命令
select group_concat(column_name) from information_schema.columns where table_schema='test_db' and table_name='users'
应该改写为
select group_concat(column_name) from information_schema.columns where table_schema='test_db'
即删去了后面的and tablename='users'
至于为什么要这么改,后面也想清楚了:
如果查列名的语句含有 and table_name='users' 这样就代表我们是查询名为users的表下的所有列名;
而如果删去 and table_name='users' 仅前面的语句就不指定表名而是查询所有表下的所有列名,这样才能把flag列名爆出来 (也就是说其实flag是存在于test_tb表下的,而并不在users表下,如果冒然的将查询列规定为users表下面,只会画蛇添足,还找不到flag)
弄清楚以后重新爆列名,不用多此一举限制查询的范围(删去 and table_name='users')

发现这次列名就全了,可以看到flag列了。
那么接下来直接爆flag
既然刚刚无意中发现flag不在users表下而是在test_tb表下,那就直接爆test_tb表的flag列即可
相关文章:
Web三漏洞学习(其二:sql注入)
靶场:NSSCTF 、云曦历年考核题 二、sql注入 NSSCTF 【SWPUCTF 2021 新生赛】easy_sql 这题虽然之前做过,但为了学习sql,整理一下就再写一次 打开以后是杰哥的界面 注意到html网页标题的名称是 “参数是wllm” 那就传参数值试一试 首先判…...
KrillinAI:视频跨语言传播的一站式AI解决方案
引言 在全球内容创作领域,跨语言传播一直是内容创作者面临的巨大挑战。传统的视频本地化流程繁琐,涉及多个环节和工具,不仅耗时耗力,还常常面临质量不稳定的问题。随着大语言模型(LLM)技术的迅猛发展,一款名为Krillin…...
gravity`(控制 View 内部内容的对齐方式)
文章目录 **1. 常用取值****示例** **2. layout_gravity(控制 View 在父容器中的对齐方式)****常用取值****示例** **3. gravity vs layout_gravity 对比****4. 注意事项****5. 总结** 作用对象:当前 View 的内部内容(如 TextView…...
gitdiagram源码架构分析
https://github.com/ahmedkhaleel2004/gitdiagram 整体架构分析 前端请求入口: 后端对应接口: 后端调试 后端调试:会提示api_key失败的问题: 有两种方法解决: 1、注释掉下面的行代码; 方法二࿱…...
蓝光三维扫描:汽车冲压模具与钣金件全尺寸检测的精准解决方案
随着汽车市场竞争日趋激烈,新车型开发周期缩短,安全性能要求提高,车身结构愈加复杂。白车身由多达上百个具有复杂空间型面的钣金件,通过一系列工装装配、焊接而成。 钣金件尺寸精度是白车身装配精度的基础。采用新拓三维XTOM蓝光…...
《分布式软总线:网络抖动下的数据传输“定海神针”》
在当下,智能设备之间的互联互通已成为生活与工作的刚需。分布式软总线作为实现这一愿景的关键技术,正日益凸显其重要性。然而,网络环境的复杂性,尤其是网络抖动频繁的情况,给分布式软总线的数据传输带来了严峻挑战。如…...
WPS JS宏编程教程(从基础到进阶)-- 第八部分:字符串技术与WPS结合应用
目录 第8章 字符串技术与WPS结合应用8-1 字符串的3种引用方式场景:动态生成报表标题三种引用方式对比代码解析表模板字符串核心优势8-2 字符串处理之切片与搜索场景:提取身份证中的出生年份三大截取方法对比方法选择指南索引搜索实战8-3 字符串处理之修改与填充场景:规范商品…...
C++实用函数:bind
本篇来介绍了C++中bind功能。 1 std::bind 在 C++ 里,std::bind 是一个函数模板,其作用是创建一个可调用对象,该对象可绑定到一组参数上。std::bind 的函数原型如下: template< class F, class... Args > /*unspecified*/ bind( F&& f, Args&&...…...
深度学习占用大量内存空间解决办法
应该是缓存的问题,关机重启内存多了10G,暂时没找到别的方法 重启前 关机重启后...
完全无网络环境的 openEuler 系统离线安装 ClamAV 的详细步骤
准备工作(在外网机器操作) 1. 下载 ClamAV RPM 包及依赖 mkdir -p ~/clamav-offline/packages cd ~/clamav-offline/packages# 使用 yumdownloader 下载所有依赖包(需提前安装 yum-utils) sudo dnf install yum-utils -y sudo y…...
Matlab绘制函数方程图形
Matlab绘制函数方程图形: 多项式计算: polyval 函数 Values of Polynomials: polyval ( ) 绘制方程式图形: 代码如下: >> a[9,-5,3,7]; x-2:0.01:5; fpolyval(a,x); plot(x,f,LineWidth,2); xlabel(x); ylabel(f(x))…...
Unity UI 从零到精通 (第30天): Canvas、布局与C#交互实战
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
在AMGX中使用MPI加载自定义分布式矩阵和向量
在AMGX中使用MPI加载自定义分布式矩阵和向量 AMGX是一个用于大规模并行代数多重网格求解的GPU加速库,支持MPI多线程环境。以下是加载用户自定义分布式矩阵和向量的方法: 1. 矩阵和向量分布的基本概念 在MPI环境中,AMGX使用行分布方式&…...
电视盒子 刷armbian
参考 中兴电视盒子中兴B860AV3.2-M刷Armbian新手级教程-CSDN博客 1.刷安卓9 带root版本 a. 下载安卓线刷包 链接:https://pan.baidu.com/s/1hz87_ld2lJea0gYjeoHQ8A?pwdd7as 提取码:d7as b.拆机短接 3.安装usbburning工具 使用方法 ,…...
AI应用开发之扣子第一课-夸夸机器人
首先,进入官网:点击跳转至扣子。 1.创建智能体 登录进网站后,点击左上角+图标,创建智能体,输入智能体名称、功能介绍 2.输入智能体提示词 在“人设与回复逻辑”输入以下内容: # 角色 你是一…...
【计算机网络实践】(十二)大学校园网综合项目设计
本系列包含: (一)以太网帧分析与网际互联协议报文结构分析 (二)地址解析协议分析与传输控制协议特性分析 (三)交换机的基本操作、配置、 虚拟局域网配置和应用 (四)交…...
uniapp小程序位置授权弹框与隐私协议耦合(合而为一)(只在真机上有用,模拟器会分开弹 )
注意: 只在真机上有用,模拟器会分开弹 效果图: 模拟器效果图(授权框跟隐私政策会分开弹,先弹隐私政策,同意再弹授权弹框): manifest-template.json配置( "__usePr…...
【星闪模组开发板WS8204SLEBLEModule】星闪数据收发测试
目录 开发板简介 串口设置 主从模式设置 AT命令数据发送 透传模式数据发送 结语 本文首发于《电子产品世界》论坛:【星闪模组开发板WS8204SLE&BLEModule】星闪数据收发测试-电子产品世界论坛https://forum.eepw.com.cn/thread/392011/1 感谢eepw论坛和成…...
天梯赛L1-22-25
L1-022 奇偶分家 题目描述 给定 N 个正整数,统计其中奇数和偶数各有多少个。 输入格式 第一行:一个正整数 N(≤1000)。第二行:N 个非负整数,以空格分隔。 输出格式 在一行中输出奇数的个数和偶数的个…...
基础知识:Dify 错误排查
Case1:Dify 卡在管理员界面 查看容器状态 docker compose ps 可以看到有个容器异常:docker_db_1 的状态是 Restarting(表示一直在重启) 解决方案 参考:https://github.com/langgenius/dify/issues/5731...
spring cloud微服务断路器详解及主流断路器框架对比
微服务断路器详解 1. 核心概念 定义:断路器模式通过快速失败机制防止故障扩散,当服务调用出现异常或超时时,自动切换到降级逻辑,避免级联故障。核心功能: 熔断:在故障阈值(如错误率)…...
BufferedReader 终极解析与记忆指南
BufferedReader 终极解析与记忆指南 一、核心本质 BufferedReader 是 Java 提供的缓冲字符输入流,继承自 Reader,通过内存缓冲和行读取功能极大提升文本读取效率。 核心特性速查表 特性说明继承链Reader → BufferedReader缓冲机制默认 8KB 字符缓冲…...
linux-设置每次ssh登录服务器的时候提醒多久需要修改密码
在 Linux 系统中,你可以通过设置 motd(Message of the Day)或 sshd 配置来在用户通过 SSH 登录时提醒他们密码即将过期。以下是具体步骤: 方法 1: 使用 motd 文件 motd 文件在用户登录时显示,你可以通过脚本动态生成内容,提醒用户密码过期时间。 编辑 /etc/motd 文件:…...
(小白0基础) 微调deepseek-8b模型参数详解以及全流程——训练篇
本篇参考bilibili如何在本地微调DeepSeek-R1-8b模型_哔哩哔哩_bilibili 上篇:(小白0基础) 租用AutoDL服务器进行deepseek-8b模型微调全流程(Xshell,XFTP) —— 准备篇 初始变量 max_seq_length 2048 dtype None load_in_4bit True单批次最大处理模型大小dy…...
调用LLM的api
目录 chatgptdemo可选模型 chatgpt demo import openai openai.api_key xxxxxxxxx # 自己的api key openai.api_base https://api.feidaapi.com/v1 # 中转非直连 # response openai.ChatCompletion.create( # model"gpt-4o", # messages[ # {"rol…...
关于汽车辅助驾驶不同等级、技术对比、传感器差异及未来发展方向的详细分析
以下是关于汽车辅助驾驶不同等级、技术对比、传感器差异及未来发展方向的详细分析: 一、汽车辅助驾驶等级详解 根据SAE(国际自动机工程师学会)的标准,自动驾驶分为 L0到L5 六个等级: 1. L0(无自动化&…...
windows安卓子系统wsa隐藏应用列表的安装激活使用
Windows 11 安卓子系统应用部署全攻略 windows安卓子系统wsa隐藏应用列表的安装激活使用|过检测核心前端 在 Windows 11 系统中,安卓子系统为用户带来了在电脑上运行安卓应用的便利。经过一系列的操作,我们已经完成了 Windows 11 安卓子系统的底层和前端…...
mongodb7日志特点介绍:日志分类、级别、关键字段(下)
#作者:任少近 上篇《mongodb7日志特点介绍:日志分类、级别、关键字段(上)》 链接: link 文章目录 4.日志会输出F/E/W/I四种情况5.日志关键字段6.日志量验证情况7.总结 4.日志会输出F/E/W/I四种情况 在MongoDB7中,日志输出按照严重性分为四种…...
word中插入图片显示不完整,怎么处理让其显示完整?
在WORD里插入图片后,选择嵌入式发现插入的图片显示不正常,只能显示底部一部分,或者遮住文字。出现此故障的原因有可能是设置为固定值的文档行距小于图形的高度,从而导致插入的图形只显示出了一部分。 1.选中图片,然后点…...
SAP S4HANA embedded analytics
SAP S4HANA embedded analytics...
