sql注入原理
在与服务器数据库进行数据交互的地方拼接了恶意的sql代码,达到欺骗服务器执行恶意代码的目的。本质上是程序把用户输入的数据当成了sql语句执行。
SQL注入攻击思路
1.寻找注入点,判断闭合拼接
2.判断数据库类型版本
3.判断页面回馈寻找获取数据的方式
4.根据掌握的信息进行攻击
SQL注入的分类
1.判断某个链接是否存在SQL注入,可以通过对其传入的可控参数进行简单的构造,通过服务端返回的内容来判断有无注入 ,注入位置有GET数据(大多存在地址栏)、POST数据(大多存在输入框中)、HTTP头部、cookie数据。
2.不同的数据库内置的函数和结构都不同,所以一开始要确定数据库来确定payload。
3.从页面反馈有选择注入手法:有回显时联合查询注入、无回显时报错型注入、布尔型注入、延时 注入
4.还有一些注入思路,如加解密注入是因为服务器代码对数据进行了加密,所以payload要先解密在拼接后加密才能成功。二次注入是先存储脏数据进入数据库后再执行恶意代码。DNSlog注入是通过dns解析服务把信息显示在dns服务器上。堆叠注入是在语句结束后再构建一条恶意sql。
SQL注入的步骤
1、判断注入类型,数字型还是字符型:
首先,我们需要确定目标是数字型还是字符型注入漏洞,以便我们进一步进行其它注入操作。如下面的php代码片段所示,第一行代码代表数字型的sql拼接,其中的变量在sql查询语句拼接时并没有用引号括起来;第二行代码是字符型,其中的变量使用了引号进行拼接。
# 数字型
$query = "SELECT first_name, last_name FROM users WHERE user_id = $id;";
# 字符型
$query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";
下面介绍如

本文深入探讨了SQL注入的原理,包括通过拼接恶意SQL欺骗服务器执行,以及各种注入攻击思路。详细阐述了SQL注入的分类、判断注入类型的方法和步骤,如数字型与字符型注入的区分。接着,文章逐步讲解了猜解字段数、确定字段顺序、获取数据库和表信息、字段信息等技巧,并结合实际案例展示了整个过程。最后,通过一个2019年极客大挑战的LoveSQL实例,演示了如何应用这些知识解决实际问题。
2274

被折叠的 条评论
为什么被折叠?



