关于我这周学习SQL注入的一些笔记:
作者:互联网
sql注入的原理:
通过恶意的SQL语句插入到应用的输入参数中,再在后台数据库服务器上解析执行的攻击。
Web程序的三层结构:
在这个地方,我们选择这个东西进行注入。 我们看到了要我们输入ID的题目,我们首先随便输入一个数,比如我现在输入一个1,然后他会返回
URL中的ID=1,说明PHP页面通过了get方法传递参数,我们现在看看他的源代码是什么
他返回了数据库报错信息,说明此处是存在SQL漏洞的。 然后我们就要确定注入的类型了: 我们决定使用联合查询语句,是这样的,举个例子 select column_name(s) from table1 UNION select column_name(s) from table2; 类似于这种格式的语句,我们称之为联合查询语句,其中union运算符可以将两个或者两个以上的select 语句的查询结果合并为一个结果来显示。 这个笔记是在我学习蓝桥杯的时候做的一些笔记,希望你们可以学到你们需要的东西,不敢说是原创,其中很多都是课上的东西。也许我做的笔记是又问题的,请一定要在评论区发出来,一边牢固了你们的记忆,而且还帮我纠正了错误(手动狗头),最后谢谢你们看到最后。
- 界面层( User Interface layer )
- 业务逻辑层( Business Logic Layer )
- 数据访问层( Data access layer )
- 表示层
- 业务逻辑层(又叫领域层)
- 数据访问层(又叫储存层)
- 猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。
- 绕过认证,列如绕过验证登录网站后台。
- 注入可以借助数据库的存储过程进行提权等操作。
- 寻找注入点
- 判断注入类型/数据库类型
- 猜解数据库名
- 猜解数据表名
- 猜解数据字段名
- 按照参数类型可分为两种:数字型和字符型。
- 根据数据库返回的结果,可分为回显注入、报错注入、盲注。
- 按照注入方法,还可以分为联合注入、堆叠注入、宽字节注入、延时注入等。
在这个地方,我们选择这个东西进行注入。 我们看到了要我们输入ID的题目,我们首先随便输入一个数,比如我现在输入一个1,然后他会返回
URL中的ID=1,说明PHP页面通过了get方法传递参数,我们现在看看他的源代码是什么
<?php if(isset($_REQUEST['Submit')) //Get input sid $_REQUEST['id'] //Check database $query "SELECT first_name,last_name FROM users WHERE user_id '$id';" sresuit mysqli_query($GLOBALS["___mysqli_ston"],Squery )or die('<pre>'.((is_object(SGLOBALS["___mysqli_ston"]))mysqli_error ($GLOBALS["___mysqli_ston"]):(($___mysqli_res mysqli_connect_error())?$___mysqli_res false)).'</pre>'); //Get results while(Srow mysqli_fetch_assoc($result )) //Get values $first Srow["first_name"]; Slast Srow["last_name"]; //Feedback for end user echo "<pre>ID:{Sid)<br />First name:{$first}<br />Surname:{$last}</pre>"; mysqli_close($GLOBALS["___mysqli_ston"]); ?>
这段代码就是我们刚刚那个html的源代码,我们可以看见
$query "SELECT first_name,last_name FROM users WHERE user_id '$id';"
这个就是我们实际执行的SQL语句,如果我们在id的后面加了一个'的话 会出现这个情况
他返回了数据库报错信息,说明此处是存在SQL漏洞的。 然后我们就要确定注入的类型了: 我们决定使用联合查询语句,是这样的,举个例子 select column_name(s) from table1 UNION select column_name(s) from table2; 类似于这种格式的语句,我们称之为联合查询语句,其中union运算符可以将两个或者两个以上的select 语句的查询结果合并为一个结果来显示。 这个笔记是在我学习蓝桥杯的时候做的一些笔记,希望你们可以学到你们需要的东西,不敢说是原创,其中很多都是课上的东西。也许我做的笔记是又问题的,请一定要在评论区发出来,一边牢固了你们的记忆,而且还帮我纠正了错误(手动狗头),最后谢谢你们看到最后。
标签:语句,这周,数据库,笔记,猜解,SQL,mysqli,注入 来源: https://www.cnblogs.com/AnimeBucket/p/16412866.html