sql注入和xss注入有什么不一样呢?
在OWASP Top10中注入排在第一位,xss排在第七位,那么问题问题就来了,sql注入和xss注入都是注入,为什么要单独把xss单独拿出来排个名呢?他俩到底有啥区别,各自的特点是啥?本文不对它俩做详细的讲解,后续会出详细讲解的文章,本文仅从概念、注入方式、危害三个方向进行对比。
概念简介
sql注入
百度曰:SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
我个人的理解是,通过某种方法,将恶意的sql语句夹带进原本的sql语句,一起传递给数据库,站在数据库的角度没有语法错误的语句都是正常语句,所以都会执行,然后就可获取本无法获取的数据。
xss注入
百度曰:XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
我个人的理解是,攻击者通过某些方法,将恶意脚本或命令嵌入(用夹带一词也行)到用户访问的页面中,当正常用户访问页面时,触发嵌入的恶意脚本/命令,这个就是xss注入。
注入类别(上文的某种方式)
两个注入的类别的原因是相同又不相同,相同是应用程序没有对用户的输入做足够的验证给了攻击者有了可趁之机,不同的是这两种对于“验证不足”的利用方式是不一样的。
sql注入 |
xss注入 |
1、联合注入 2、布尔盲注 3、报错注入 4、时间注入 5、堆叠查询注入 6、http请求头注 |
1、反射型 2、存储型 3、DOM型 |
注入的危害
sql注入的危害
1、攻击者未经授权可以获取数据库中的数据,造成数据泄露;
2、攻击者可以篡改数据库内容,比如将部分内容篡改为违法内容;
3、攻击者可以对数据库中数据进行操作(增加/删除),比如添加一个后门用户;
4、攻击者甚至可以进行提权,获取服务器管理员权限,安装后门,然后为所欲为;
xss注入的危害
1、xss蠕虫;
2、按键记录;
3、钓鱼欺骗;
4、劫持用户Web行为,监控用户的浏览历史;
5、窃取用户Cookie,盗取用户信息,盗用用户身份;
危害小结:可以很明显的对比出来,sql注入更多的是针对应用程序的数据库,而xss针对的更多的是应用程序的使用者。
总结:sql注入和xss注入虽然本质上都是注入,但是注入的对象、注入的方法以及造成的受害者都是不一样的。本文的对比分析到这里就结束了,后续会继续开启两者的详细解说,敬请期待~