CTF-Web安全--SQL注入之Union注入详解

简介: CTF-Web安全--SQL注入之Union注入详解

一、测试靶场与使用工具

浏览器:火狐浏览器--Firefox

靶场:sqli-labs

使用插件:HackBar

操作环境:phpstudy


二、判断字符型注入与数字型注入

操作步骤:

1、用F12打开控制台,打开HackBar, Loar URL,将当前靶场的URL信息复制到操作台上

2、输入?id=1,观察到页面发生变化,显示的是id=1时数据库中的信息,?是用来分割URL和查询字符串的,查询到了id=1时的用户登录名与登录密码

3、目前还不确定是字符型注入还是数字型注入,我们将id分别改为 id=2 和 id=2-1,若为数字型注入,则 id=2-1 时,页面应与 id=1 时的页面一致,若不一致,则证明为 字符型注入

id=2时:

id=2-1时:

由观察上图可知:id=2-1时页面与id=2时页面一致,与id=1时页面不一致,说明为字符型注入。若id=2-1的页面与id=1时的界面相同,则说明为数字型注入。


三、找到字符型的闭合方式

字符型闭合方式分为四种:'   ``   ')   ")

经过尝试之后我们可以找到符合要求的字符型闭合方式,并在后加上 --+,否则会报错。

http://localhost/Less-1/?id=1' --+

四、正式开始Union注入


--- 共分为五个步骤:

1、找到注入点

2、判断是 字符型注入 \ 数字型注入

3、若是字符型注入,找到它的闭合方式

4、判断查询列数 group by \ order by

5、查找回显位置 令 id=-1 \ id=0


--- 判断查询列数

使用 group by 语句,先令 group by 10, 若不符合条件,则利用二分逼近的方法,逼出最终的答案。

当group by 10时,页面黄字提示报错

经过二分逼近,最终得出结论,查询列数=3


--- 查找回显位置

使用如下语句:

http://localhost/Less-1/?id=-1' union select 1,2,3 --+

为什么要将id改为-1:若id=1,那么页面将显示表中第一行数据,只有id的值在表中不存在,那么页面中将显示我们自己要查询的值,借此我们可以找到回显位。


--- 注入命令,盗取账号和密码

1、首先使用database()函数,借助回显位可以看到当前使用的数据库名称为 'security'。

2、利用SELECT查询语句,查询数据库security中的表都有哪些。

查询过程中要使用 group_concat()函数,否则只会显示一个表名的信息。

http://localhost/Less-1/?id=-1' union select 1,2, group_concat(table_name) from information_schema.tables where table_schema=database() --+

3、利用SELECT查询语句,查询 表User 中的列 column 都有哪些。

http://localhost/Less-1/?id=-1' union select 1,2, group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' --+

观察到 表User 由三列构成  -- id -- username -- password, 我们的目标就是拿到用户的 username 和 password。

4、利用SELECT查询语句 将用户的 username 和 password 显示到 回显位上。

http://localhost/Less-1/?id=-1' union select 1,2, group_concat(username, '~', password) from users --+

得到用户名与密码,目的达成。


五、若为数字型注入

若注入方式为数字型注入,则不必找到它的闭合方式 与 --+,其他步骤 = 字符型注入。

相关文章
|
10月前
|
Web App开发 监控 安全
OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)
本文深入解析了客户端直传技术,涵盖架构设计、安全机制、性能优化等方面。通过STS临时凭证与分片上传实现高效安全的文件传输,显著降低服务端负载与上传耗时,提升系统稳定性与用户体验。
886 2
|
6月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.10 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.10 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
407 3
|
7月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.9 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
570 0
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
|
9月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
711 0
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
9月前
|
存储 安全 JavaScript
Web Storage有哪些安全风险?
Web Storage有哪些安全风险?
|
9月前
|
SQL 数据格式
SQL 无法使用Union如何解决
SQL Server中使用UNION时,若字段含ntext类型会报错。可通过查询INFORMATION_SCHEMA.COLUMNS定位该字段,并用CAST转为nvarchar即可解决。
|
6月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
539 4
|
10月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
10月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。