QQ泡沫乐园 · 免费提供游戏辅助,破解软件,活动资讯,喜欢记得收藏哦!
综合软件_线报活动_游戏辅助_最新电影_最优质的的辅助分享平台

一个网站建立以后,如果不注意安全方面的问题与原理分析

泡沫乐园 2022-05-25 08:01

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种常见的漏洞的简介与原理分析

一.跨站脚本攻击(xss)

恶意攻击者通过往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。下面我们来分析一下xss的特点:

1、耗时间

2、有一定几率不成功

3、没有相应的软件来完成自动化攻击

4、前期需要基本的html、js功底,后期需要扎实的html、js、actionscript2/3.0等语言的功底

5、是一种被动的攻击手法

6、对website有http-only、crossdomian.xml没有用

但是这些并没有影响黑客对此漏洞的偏爱,原因不需要多,只需要一个。

Xss几乎每个网站都存在,google、baidu、360等都存在。

下面来看一个例子:



    
	xss原理重现


    
把我们输入的字符串 输出到input里的value属性里
请输入你想显现的字符串


'; }else{ echo ''; } ?>

我们在输入框里输入 ">

分析这一段的代码,前面的">是为了闭合前面的input,这个输入就可以使弹窗出现

我们也可以通过输入 " οnclick="alert('xss')

因为onclick是鼠标点击事件,也就是说当你的鼠标点击第二个input输入框的时候,

就会触发onclick事件,然后执行

Js可以干很多的事,可以获取cookies(对http-only没用)、控制用户的动作(发帖、私信什么的)等等。

比如我们在网站的留言区输入下面的代码:

当管理员进后台浏览留言的时候,就会触发,然后管理员的cookies和后台地址还有管理员浏览器版本等等你都可以获取到了

那假如说网站禁止过滤了script 这时该怎么办呢,记住一句话,这是我总结出来的“xss就是在页面执行你想要的js”不用管那么多,只要能运行我们的js就OK,比如用img标签或者a标签。我们可以这样写

当找不到图片名为1的文件时,执行alert('xss')

点击s时运行alert('xss')

利用iframe的src来弹窗

下面是XSS攻击方法:

Stored XSS

Stored XSS是存储式XSS漏洞,由于其攻击代码已经存储到服务器上或者数据库中,所以受害者是很多人。

场景二:

a.com可以发文章,我登录后在a.com中发布了一篇文章,文章中包含了恶意代码,

,保存文章。

这时Tom和Jack看到了我发布的文章,当在查看我的文章时就都中招了,

他们的cookie信息都发送到了我的服务器上,攻击成功!这个过程中,受害者是多个人。

Stored XSS漏洞危害性更大,危害面更广。

XSS防御方法:

完善的过滤体系

永远不相信用户的输入。需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。

Html encode

假如某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换。

less-than character () >

ampersand character (&) &

double-quote character (") "

space character( )

Any ASCII code character whose code is greater-than or equal to 0x80 &#, where is the ASCII character value.

比如用户输入:,保存后最终存储的会是:

<script>window.location.href=";</script>在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。

其它

下面提供两种Html encode的方法。

1.使用Apache的commons-lang.jar

StringEscapeUtils.escapeHtml(str);// 汉字会转换成对应的ASCII码,空格不转换

2.自己实现转换,只转换部分字符

二.SQL注入(sql injection)

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

先举个例子,你要登录一个网站,上面让你输入用户名字和密码。那么,假如你输入的用户名是 admin ,但是你不知道密码,你就输入了一个 1' OR '1' = '1 ,那么,你就提交了两个参数给服务器。假如,服务器拿这两个参数拼SQL语句:SELECT T.* FROM XXX_TABLE TWHERE T.USER_ID = '/*param1*/'AND T.PASSWORD = '/*param2*/'

那么当你遭到语言攻击时在线阅读,你提交的两个参数就使SQL文变成了:SELECT T.* FROM XXX_TABLE TWHERE T.USER_ID = 'admin'AND T.PASSWORD = '1' OR '1' = '1'

那么,这个SQL原来的校验功能就被你绕过去了,你的这种行为就称之为SQL注入

为了成功注入SQL命令,攻击者必须将开发者现有的sql命令转化成合法的sql语句,当然,要盲注总是有难度的,但一般都是

'OR1=1–

或者

')OR1=1--

总结一下SQL注入的思路

1. SQL注入漏洞的判断,即寻找注入点

2. 判断后台数据库类型

3. 确定XP_CMDSHELL可执行情况;若当前连接数据的帐号具有SA权限,

且master.dbo.xp_cmdshell扩展存储过程(调用此存储过程可以直接使用操作系统的shell)能够正确执行,则整个计算机可以通过几种方法完全控制,也就完成了整个注入过程

否则继续:

1. 发现WEB虚拟目录

2. 上传ASP木马;

3. 得到管理员权限

对SQL注入的防御方法:

1.使用参数化的过滤性语句

2.避免出现详细的错误信息

3.使用专业的漏洞扫描工具

4.避免使用解释程序

5.企业要web应用程序开发过程的所有阶段实施代码的安全检查

三.跨站请求攻击(CSRF)

尽管听起来像跨站脚本( XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

简单来说就是,攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

下图简单阐述了CSRF的原理

几种类型的CSRF

1.GET类型的CSRF

 

在访问含有这个img的页面后,成功向发出了一次HTTP请求。所以,如果将该网址替换为存在GET型CSRF的地址,就能完成攻击了

2.POST类型的CSRF

访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作

CSRF的防御

CSRF的防御可以从服务端和客户端两方面着手,防御效果是从服务端着手效果比较好,现在一般的CSRF防御也都在服务端进行。

1.服务端进行CSRF防御

服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数。

(1).Cookie Hashing(所有表单都包含同一个伪随机值):

这可能是最简单的解决方案了,因为攻击者不能获得第三方的Cookie(理论上),所以表单中的数据也就构造失败了

在表单里增加Hash值,以认证这确实是用户发送的请求。

  
  
              ”>        

然后在服务器端进行Hash值验证

   

四.COOKIE攻击

通过Java Script非常容易访问到当前网站的cookie。你可以打开任何网站,然后在浏览器地址栏中输 入:javascript:alert(doucment.cookie),立刻就可以看到当前站点的cookie(如果有的话)。攻击者可以利用这个特性来取得你的关键信息。例如,和XSS攻击相配合,攻击者在你的浏览器上执行特定的Java Script脚本,取得你的cookie。假设这个网站仅依赖cookie来验证用户身份,那么攻击者就可以假冒你的身份来做一些事情。

现在多数浏览器都支持在cookie上打上HttpOnly的标记,凡有这个标志的cookie就无法通过Java Script来取得,如果能在关键cookie上打上这个标记,就会大大增强cookie的安全性

以下是获取Cookie信息的主要途径:

1. 直接读取磁盘的Cookie文件,Windows系统的Cookie信息存放目录是C:/Documents and Settings/%yourname%/Cookies,FireFox的Cookie信息是在FireFox的Profiles目录中。

2. 使用网络嗅探器来获取网络上船速的Cookie

3. 使用一些Cookie管理工具获取内存或者文件系统中的cookie

4. 使用跨站脚本来盗取别人的cookie

假如我们成功获取了cookie信息,那下一步理所当然地就是要进行攻击了,常用的攻击步骤有:

1. 查看Cookie信息,对Cookie信息进行分析

2. 修改Cookie中的逻辑判断类信息,比如一些boolean标志,01标志等等,访问服务器,观察服务器的反应。

3. 修改Cookie信息中数字类型的信息,比如id, number等等这类的值,观察服务器反应。

4. 获取别人的Cookie信息当你遭到语言攻击时在线阅读,然后根据别人的Cookie信息修改自己本地的Cookie信息,看服务器是否会把自己识别为其他人。

那我们应该如何防范利用Cookie进行的攻击呢?

1. 不要在Cookie中保存敏感信息

2. 不要在Cookie中保存没有经过加密的或者容易被解密的敏感信息

3. 对从客户端取得的Cookie信息进行严格校验

4. 记录非法的Cookie信息进行分析,并根据这些信息对系统进行改进。

5. 使用SSL/TLS来传递Cookie信息

上一篇:南怀瑾老师:冰心奶奶的文集《小桔灯》 下一篇:没有了
相关文章