学习总结之注入攻击(以SQL注入为主)

文章详细介绍了SQL注入攻击的原理,包括基于报错、盲注和联合查询等多种攻击方式,提到了常见的SQL函数和关键字,并举例说明了如何通过靶场实操进行学习。此外,还讨论了SQL注入的防御措施,如输入字符过滤和预编译语句的使用。
摘要由CSDN通过智能技术生成

       在经过书本学习和视频学习后,再结合靶场实操,我将对注入攻击进行一个简单的总结,将从注入原理,攻击方式,常见的sql函数,关键字,sql绕过,注入作用,以及sql的加固这几个方面进行阐述。

       注入攻击原理:利用应用程序或系统没有对用户输入的数据进行足够严格的检查和过滤,从而使攻击者可以向目标系统中注入恶意的代码或命令。 

        SQL注入原理:利用web应用程序对用户输入数据的信任,攻击者通过构造特殊的sql语句,将恶意代码或命令注入到应用程序中,并执行这些代码或命令。

        在pikachu靶场中的,搜索型注入中输入'        将会报错。

        但是,在搜索框中输入%‘#,将会返回该表中的所有数据。

 

        该原理就是%进行了模糊查询,'进行了搜索闭合,#注释掉了后面的字符,从而可以查询到该数据表中 的所有数据。

        SQL注入的攻击方式:

        1.基于报错的SQL注入:攻击者通过提交恶意代码时故意构造错误的sql语句,从而引发服务                                                 器返回错误信息。

        2.基于盲注的SQL注入:攻击者无法直接获取服务器敏感信息,但可以通过简单的布尔逻辑                                                  判断。(布尔类型)

        3.基于时间的SQL盲注:攻击者提交恶意代码时,通过构造需要耗费时间的SQL语句,从而                                                  获取敏感信息(常见sleep())。

        4.基于联合查询的SQL注入:攻击者利用Union操作符将多个SQL语句合并为一个结果集,从                                                        而获取服务器敏感数据。

        5.基于堆的查询注入:用;'分割开多条语句,可同时执行多条语句。

        4和5的区别:Union/Union all执行的语句有限,可以用来执行查询语句,而堆叠注入可以执                                  行任意语句。

        常见的SQL函数:database()数据库,user()用户名,version()数据库版本,sleep()休眠时                                          间,floor()向下取整,ceil()向上取整,substr()截图字符串,count()统计数                                          量,limit()限制查询结果。

        常见的SQL关键字:select,where,order,union,update,floor,exec,insert,from等

        SQL绕过:1.注释符号绕过,2.大小写绕过,3.特殊编码绕过,4.过滤or and xor not 绕过

        SQL注入的作用:1.绕错登录验证,2.获取敏感数据,3.进行文件系统操作,4.注册表操作,                                       5.执行系统命令

 

        SQL的加固与防御:1.对输入字符进行过滤

                                         2.使用预编译语句处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值