科技颠覆者 发表于 2024-10-2 20:03:23

SQL注入攻击

一、目的

了解SQL注入的危害
了解SQL的基本原理和SQL语句的SELECT/UPDATE/INSERT等用法
熟悉靶场Pikachu的安装和利用
把握SQL注入的数字型注入攻击
把握SQL注入的字符型注入攻击
把握UNION语句进一步扩大攻击范围
了解SQL攻击的防御方法
二、漏洞原理

漏洞原理
在动态网站中,往往需要用户传递参数到服务器,这些参数往往需要和数据库进行交互;当服务端没有对参数进行安全过滤时,攻击者在参数中参加恶意的SQL语句结构,便编造成了SQL注入漏洞,被攻击者利用来攻击系统和网站。
https://i-blog.csdnimg.cn/direct/46efb5e93a5a4e65b4d5a33372bf11e0.png
攻击者在提交请求时将SQL语句插入到请求内容中,步伐自己对用户输入内容未经处置处罚,同时而未对恶意用户插入的SQL语句进行过滤,导致SQL语句直接被服务端实行。

漏洞类型
在SQL注入漏洞中,注入类型分为三种:数字型、字符型、搜刮型
数字型

在 Web 端中经常能看到是比方http://xxx.com/news.php?id=1 这种情势,其注入点 id 类型为数字,所以叫数字型注入点。
这一类的 SQL 语句结构通常为 select * from news where id=1 ,假如攻击者将参数id的值改为1 or 1=1,那么步伐中拼接的sql语句则为:select * from news where id=1 or 1=1,因此参数改变了原有的SQL语句结构,导致了SQL注入漏洞攻击。
字符型

在 Web 端中也经常能看到比方http://xxx.com/news.php?name=admin 这种情势的URL所在,其注入点 name 类型为字符类型,所以叫字符型注入点。这一类的 SQL 语句结构通常为
select * from 表名 where name='admin' 当攻击者在参数值admin尾部参加攻击代码' or 1=1,那么拼接出来的sql注入语句为:
select * from news where chr='admin' or 1=1 ' 这样SQL语句同样也会被改变,固然攻击者也不但仅利用这么简单的攻击代码,通常还会利用一些更加复杂的攻击代码,比方
admin' union select 1,2,3,4 or '1'='1 在步伐中拼接SQL语句之后,则变成了
select * from news where chr='admin' union select 1,2,3,4 or '1'='1' 这样就可以利用union结构将攻击者所感爱好的内容返回回来
搜刮型

很多时间我们会看到网站有个站内搜刮的功能,搜刮功能往往需要和数据库进行交互,因此也会存在SQL注入漏洞风险,搜刮型SQL注入的特点是攻击代码中有两个% ,如下图所示
https://i-blog.csdnimg.cn/direct/ec6e6fba21de442b86bd3ec2ff2b7db8.png
在上图中可以看到,这个地方原本是用来搜刮干系用户名的,当攻击代码为
%xxxx% or 1=1 #%' 所有的用户都在下方展示了出来,在下令行里我们可以这样搜刮:
https://i-blog.csdnimg.cn/direct/259f65ace29543a5ad3c5c29fe136daa.png
SQL注入的防御

不要利用动态SQL,避免将用户提供的输入直接放入SQL语句中;最好利用准备好的语句和参数化查询(PDO预处置处罚),这样更安全;限制数据库权限和特权,将数据库用户的功能设置为最低要求;这将限制攻击者在想法获取访问权限时可以实行的操纵。

防范文件

直接下载干系防范注入文件,通过incloude包含放在网站配置文件内里.
函数过滤

假如id是否为数字,直接将数据类型转换为整型,如下代码所示
$id=intval($_GET['id']); 字符型利用函数过滤
$name = addslashes($_GET['name']); 过滤后单引号会主动转义,因此SQL语句结构不会被改
三、SQL注入攻击pikachu靶场

1.下载并解压缩xampp到C盘根目次,然后运行xampp-control.exe
注意:


[*]可能需要运行库: 微软常用运行库合集.zip
[*]假如本机已经安装了PHP/MySQL, WEB服务器,可能会端口辩论

2.下载并解压缩pikachu靶场文件到 xampp路径的htdocs目次下
https://i-blog.csdnimg.cn/direct/6a8cfdbb51644a088f40d79c9a5792d5.png
3.在xampp-control面板中启动Apache, MySql
https://i-blog.csdnimg.cn/direct/682c4e69a84e44ffa6f5c15a948febea.png
4.浏览器运行: http://127.0.0.1/pikachu
5.SQL注入攻击实验
注意:
需要安装Firefox浏览器
需要配置Firefox的代理
需要运行BurpSuite,并进行抓包,然后修改包,然后放包。
1.数字型注入:

https://i-blog.csdnimg.cn/direct/820c6dbfc99946039dbc09f2f4c8584b.png
https://i-blog.csdnimg.cn/direct/2fb09f7e02464d55a89a5bca4c82089d.png
2.字符型注入:

https://i-blog.csdnimg.cn/direct/5b12acdc29644a1b9fcbc6c868eb45c4.png
https://i-blog.csdnimg.cn/direct/c85bb6629ffb432e87f1a1d78ef11056.png
3.搜刮型注入:

https://i-blog.csdnimg.cn/direct/9848d727c2d04702b4e39ec89666c815.png
https://i-blog.csdnimg.cn/direct/e52e03151df54b429aad360b03df62ae.png

四、总结

1.SQL注入的原理

SQL注入就是通过web表单吧SQL下令提交到web应用步伐,由于步伐没有过细的过滤用户输入的数据,造成字符串拼接,进而恶意的SQL语句被实行,造成数据库信息泄露,网页篡改,数据库被恶意操纵等

2.SQL注入的危害


[*]数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
[*]网页篡改:通过操纵数据库对特定网页进行篡改。
[*]网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
[*]数据库被恶意操纵:数据库服务器被攻击,数据库的系统管理员账户被篡改。
[*]服务器被长途控制,被安装后门。 经由数据库服务器提供的操纵系统支持,让黑客得以修改或控制操纵系统。
[*]粉碎硬盘数据,瘫痪全系统。

3.SQL注入的防御步伐有哪些


[*]对用户进行分级管理,严格控制用户的权限;
[*]在书写SQL语言时,禁止将变量直接写入到SQL语句,必须通过设置相应的参数来传递干系的变量;
[*]在详细检查输入或提交的变量时,对于单引号、双引号、冒号等字符进行转换大概过滤:
[*]利用安全参数;
[*]通过专业的扫描工具,可以及时的扫描到系统存在的相应漏洞;
[*]多层验证;
[*]数据库信息加密。








免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SQL注入攻击