web安全暴力破解-SQL注入简介

目录

暴力破解漏洞

简介

暴力破解漏洞的产生是由于服务器端没有做限制,导致攻击者可以通过暴力的手段破解所需信息,如用户名、密码、短信验证码等。暴力破解的关键在于字典的大小及字典是否具有针对性,如登陆时,需要输入4位数字的短信验证码,那么暴力破解的范围就是0000~9999.

如果对登陆失败做次数限制,如登陆失败6次,账号就会被锁定,这是攻击者可以采用的攻击方式是使用同一个密码对多个账户进行破解。如将密码设置为123456,然后对多个账户进行破解。

修复建议

  • 使用复杂的验证码,如滑动验证码等;
  • 如果用户登录失败次数查偶哦设置的阈值,则锁定账号;
  • 如果某个IP地址登陆失败次数超过设置的阈值,则锁定IP地址。这里存在的一个问题是,如果多个用户使用的是同一个IP地址,则会造成其他用户也不能登录。
  • 使用多因素认证,例如"密码+短信验证码",防止账号被暴力破解。
  • 更复杂的技术是使用设备指纹:检测来自同一个设备的登录请求次数是否过多。

SQL注入漏洞

SQL注入漏洞简介

SQL注入是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数被带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。

一般情况下,开发人员可以使用动态SQL语句创建通用、灵活的应用。动态SQL语句是在执行过程中构造的,他根据不同的条件产生不同的SQL语句。当开发人员在运行过程中根据不同的查询标准决定提取什么字段,如(select 语句),或者根据不同的条件选择不同的查询表时,动态地构造SQL语句会非常有用。

以PHP语句为例,命令如下:query = "SELECT \* FROM users WHERE id = _GET'id'" ;

由于这里参数ID可控,且被带入数据库查询,所以非法用户可以任意拼接SQL语句进行攻击。

原理

SQL注入漏洞的产生需要满足以下两个条件。

  • 参数用户可控:前端传给后端的参数内容是用户可以控制的。
  • 参数被带入数据库查询:传入的参数被拼接到SQL语句中,且被带入数据库查询。

分类

  • Union注入攻击

    Union注入是联合两个表进行注入攻击,使用关键词 union select 对两个表进行联合查询。两个表的字段数要相同,不然会出现报错。

  • Boolean注入攻击

    Boolean注入指的是构造SQL判断语句,通过查看页面返回结果推断那些SQL判断条件是成立的,以此获取数据中的数据。

    常用函数:

    -- length(str):返回str字符串的长度。

    -- substr(str, pos, len):将str从pos位置开始截取len长度的字符进 行返回。注意这里的pos位置是从1开始的,不是数组的0开始

    -- mid(str,pos,len):跟上面的一样,截取字符串

    -- ascii(str):返回字符串str的最左面字符的ASCII代码值。

    -- ord(str):同上,返回ascii码

    -- if(a,b,c) :a为条件,a为true,返回b,否则返回c,如if(1>2,1,0),返回0

  • 报错注入攻击

    通过构造恶意输入来触发数据库报错信息,从而获取有关数据库结构和数据的敏感信息。

  • 时间注入攻击

    界面返回值ture 无论输入任何值,返回的情况都是正常的来处。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确。

  • 堆叠查询注入攻击

    可以执行多条语句,多条语句之间以分号隔开。

  • 二次注入攻击

    用户提交恶意数据被存入数据库之后,应用程序把他读出来用于生成新的SQL语句,如果没有相应的安全措施,还是有可能发生SQL注入,这种注入叫做二次SQL注入

修复建议

  • 过滤危险字符
  • 使用预编译语句
相关推荐
码农小旋风35 分钟前
使用 ChatGPT 聚合站前,先看安全和隐私判断清单
人工智能·安全·自然语言处理·chatgpt·claude
Bruce_Liuxiaowei1 小时前
2026年5月第5周网络安全形势周报
人工智能·安全·web安全·ai·智能体
阿部多瑞 ABU1 小时前
AI红队攻防演化史(2023-2026):从虚拟角色到RLHF劫持——所有攻击方法全景总结与最新趋势分析
网络·人工智能·安全
我是一颗柠檬2 小时前
【MySQL全面教学】MySQL性能优化实战Day13(2026年)
数据库·后端·sql·mysql·性能优化·database
weelinking3 小时前
【产品】11_实现后端接口——数据在背后如何流动
java·人工智能·python·sql·oracle·json·ai编程
zgl_200537794 小时前
源代码:跨数据库通用SQL语法解析与标注拆解
大数据·数据库·数据仓库·sql·etl·源代码管理
暴躁小师兄数据学院5 小时前
【AI大数据工程师特训笔记】第13讲:数据库性能手术刀
大数据·数据库·数据仓库·sql·postgresql
Geometry Fu5 小时前
《物联网安全》第3.2章 无线传感器网络安全
物联网·安全·物联网安全·无线传感器网络·wsn
m0_738120726 小时前
渗透测试基础——黑盒测试下的Web漏洞挖掘与利用解析(一)
服务器·前端·网络·安全·php
碳基硅坊7 小时前
Qwen3.5-9B在安全生产安全帽检测中的应用
人工智能·安全·安全帽检测·qwen3.5-9b