自动秒收录

常用网络攻击SQL注入、XSS、CSRF、HTTP劫持


文章编号:2437 / 更新时间:2023-12-11 / 浏览:

在茫茫的互联网上,随时都在发生着攻击,作为一个合格的站长,有必要了解网络攻击者常用的手段,对于常见的网络攻击和网络防护来说很有必要。

常用网络攻击SQL注入XSSCSRFH

根据名字,我们大致可以猜测到.这个攻击是和sql数据库相关的(关系型数据库).系统的解释一下:sql注入:指的是攻击者注入一段恶意的脚本,然后执行他想要的结果。比如:获取到该db里面所有的数据,删除数据库数据.(由于,后台给前台开放的接口通常只是作为查询使用,所有获取db所有数据这类攻击比较常见).

这类攻击通常发生在,后台使用动态脚本生成sqlquerystring.而且,途中不经过混淆处理.如下:

然后,attacker可以写入如下的sqlquerystring:

即,将pass写为:pass’“OR1=1”’;并,发送给服务端处理.额…结果的话,你应该懂的上面sqlinjection只是一个比较友好的入侵(这算是良心黑客).如果,你的sqlstatement的操作权限不仅仅只限于查询,还包括CRUD操作的话.那么,hacker能做的就大了去了.

如果你的接口涉及 修改.当hacker,inject了一段代码,破坏你的数据的完整性.这种情况可能造成,其他查询时,会出现无效查询的结果.(voidtransaction),甚至返回别人的数据.

如果你的接口涉及 删除.那结果我就不多说了.

另外,还有一些关于admin或者visitor的权限分配。这也是考察数据库安全性的一个标准.

第一类方法,算是一个比较笨笨的。通过一个blacklists正则匹配,检测querystring里面的参数,将一些可以字符排除掉。

第二类方法,也是最常用的。使用数据库自带的一系列函数进行查询.这个应该不用多说,数据库自带库的函数内部对参数的处理,一定比我们重复造轮子检测正确性高~比如,mongoDB中的插入: collection.insertMany([],cb)

XSS(Cross-sitescripting).你问我为什么不是CSS?我也不知道.XSS主要是指跨脚本攻击,其实就相当于执行js脚本.经常出现在评论回复的逻辑页面中. 

上面一个流程可以很容易的说明一个道理,即,没有对comment进行任何的处理.在这种情况下,XSS简直就是如鱼得水。比如:

//comment 为:  //渲染出来的内容为:

最终渲染到页面上的结果是,p里面的内容为空,控制台输出了123.实际上,评论已经被保存在数据库。当其他用户访问时,该评论中的script脚本同样会发生作用.(可怕ing)这才是,XSS攻击最让人头疼的地方.下图是基本运作流程图: fromacunetix 

XSS其实,不仅仅只有script这个东西可以使用.凡是涉及用户输入并且渲染到页面上的,都有可能被XSS。

通过将脚本嵌套在正规页面上,用户在打开该页面时,根本无法察觉,自己已经变成XSS’svictim.所以,当用户打开网站时,malicious脚本便会执行.该脚本通常能做的事情:

脚本能够对界面进行修改

如果页面上有用户输入的私密信息,比如银行账号,密码等。就可以绑定监听,并通过ajax将信息发送给hacker.(跨域完全可以通过CORS解决)

使用H5的相关API,获得用户的人身信息.比如,摄像头,地理位置等.当然,用户也不是傻,不会平白无故的就把确认点了(使用这些API时,需要获取用户的同意).但在socialengineering面前,这一切都不是事.

地址的重定向,这应该不用过多解释.只要使用window.location.href即可

现在,我们已经知道xss的原理,即,通过嵌入script脚本,执行恶意的操作.所以,最基本的防护可以分为两种:

验证:通过验证用户输入的内容,是否符合规则.防止hacker插入,恶意代码.

Encoding:其实就相当于字符的转义.比如:将’<’转换为:<.'>'转换为:>.(防止插入