最古老、最危险的攻击方式!SQL注入

2023-05-07 07:09:50

 

声明

本文仅是渗透测试技术研究,适用人群为:渗透测试人员,IT运维人员,以及Web开发人员,帮助我们在发现登录等容易发生SQL注入漏洞。严禁用于非法用途,否则产生的一切后果由所观看文章的人自行承担,IT者说不承担任何责任。

个人能力有限 如有错误 ,欢迎指出

引言

SQL注入攻击是最古老,最流行,最危险的Web应用程序漏洞之一。黑客或者恶意攻击者,一旦注入成功可以使用万能密码绕过登录验证;获取管理员账号密码;列目录,读文件,写入文件;读、写、删除注册表;远程执行命令。

什么是SQL注入

SQL注入就是利用现有应用程序的特性,攻击者在Web表单、URL等可输入数据的地方,插入恶意SQL语句一并和原有的SQL语句被数据库一起执行。SQL命令就是前端应用程序和后端数据库之间的接口。简单来说,就是攻击者在一些正常输入数据的位置,插入特殊SQL语句,但这条语句被数据库正确的执行,从而造成安全事故。

SQL注入原理

上图展示用户访问网站的数据流程。

具体如下:

用户通过浏览器想访问http://www.xxx.com/article.php?id=11,其中id为11的一篇文章,浏览器向Web服务器发送请求。Web服务器根据id=11,动态构造SQL语句:SELECT * FROM article where id =11,向数据库发送请求。数据库在article表中查询出id=11的所有数据,并将所有查询的记录返回给Web服务器。Web服务器将返回的请求进行处理,并生成HTML文件,返回给浏览器。浏览器将返回的HTML代码展示给用户。

对照访问网站数据流程,SQL注入过程是

①修改参数值等数据请求给Web服务器;

②Web服务器未经审查和过滤,将修改的数据注入到SQL语句中,SQL语句原来的功能被修改;

③数据库将一些危险敏感的信息,返回给服务器;

④攻击者获取到重要信息。

一般的SQL注入分类

按Sql注入的输入参数,分为数字型和字符串型;按数据库返回结果分为显错注入和盲注。当然也有专家将SQL注入分为:post注入,get注入,cookie注入,盲注,延时注入,搜索注入,base64注入,基本上都可以归入以上两种类型。

总结

SQL注入虽然危害极大,但还是可控可防的。从以下几点可以避免SQL注入攻击

在设计应用程序时,完全使用参数化查询来设计数据访问功能。在组合SQL字符串时,先针对所传入的参数加入其他字符(将单引号字符前加上转义字符)。如果使用PHP开发网页程序的话,需加入转义字符之功能(自动将所有的网页传入参数,将单引号字符前加上转义字符)。使用php开发,可写入html特殊函数,可正确阻挡XSS攻击。其他,使用其他更安全的方式连接SQL数据库。例如已修正过SQL注入问题的数据库连接组件,例如ASP.NET的SqlDataSource对象或是 LINQ to SQL。使用SQL防注入系统。增强WAF的防御力


以上就是关于《最古老、最危险的攻击方式!SQL注入》的全部内容,本文网址:https://www.7ca.cn/baike/25243.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明

排行榜