关于我这周学习SQL注入的一些笔记:
2022/6/27 2:20:31
本文主要是介绍关于我这周学习SQL注入的一些笔记:,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
sql注入的原理: 通过恶意的SQL语句插入到应用的输入参数中,再在后台数据库服务器上解析执行的攻击。 Web程序的三层结构:- 界面层( 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注入的一些笔记:的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30java最新版本是什么,有什么特性?-icode9专业技术文章分享
- 2024-11-30[开源]27.8K star!这款 Postman 替代工具太火了!
- 2024-11-30Gzip 压缩入门教程:轻松掌握文件压缩技巧
- 2024-11-29开源工具的魅力:让文档管理更“聪明”
- 2024-11-29Release-it开发入门教程
- 2024-11-29Rollup 插件入门教程:轻松掌握模块打包
- 2024-11-29从零到一,产品经理如何玩转项目管理和团队协作
- 2024-11-29如何通过精益生产管理工具帮助项目团队实现精准进度控制?
- 2024-11-29低代码应用开发课程:新手入门与基础教程
- 2024-11-29入门指南:全栈低代码开发课程