控制台常见安全问题

随着互联网时代的蓬勃发展,基于Web环境下的应用系统、应用软件也得到了越来越广泛的使用。

目前,很多企业的业务发展都依赖于互联网,比如,网上银行、网络购物、网络游戏等。但,由于很多恶意攻击者想通过截获他人信息去谋取利益,因此,会对Web服务器进行攻击。攻击大方式也非常多,并且安全问题防不剩防;

以下对常见的一些安全测试漏洞,进行分享;

       1、跨站脚本攻击(CSS or XSS, Cross Site Scripting)
  2、SQL注入攻击(SQL injection)
  3、远程命令执行(Code execution)
  4、目录遍历(Directory traversal)
  5、文件包含(File inclusion)
  6、脚本代码暴露(Script source code disclosure)
  7、Http请求头的额外的回车换行符注入(CRLF injection/HTTP response splitting)
  8、跨帧脚本攻击(Cross Frame Scripting)
  9、PHP代码注入(PHP code injection)
  10、XPath injection
  11、Cookie篡改(Cookie manipulation)
  12、URL重定向(URL redirection)
  13、路径篡改
  14、反序列化漏洞

       15、关键信息加密:如密码;不但检查前端加密、还要传输过程中加密、存储地方也要加密

      16、所有对外提供的rest端口都要进行安全校验

      17、垂直权限和水平权限漏洞

等;

在测试控台时,需要时刻考虑各种安全问题;以下会以一些具体场景,来考虑不同安全问题;

跨站脚本攻击(CSS or XSS)
  XSS是一种存在Web应用中,在所有的页面表单,都需要进行xss验证,输入如<script>alert(document.cookie);</script>,会触发脚本,如

SQL注入攻击(SQL injection)

控制台提供了一些sql验证功能,如sql查询语句,设计测试用例时,一定要考虑sql注入问题;如输入SELECT count(*)
       FROM users
        WHERE username='a' or 'a'='a' AND password='a' or 'a'='a' 开发时,也要考虑到;

跨站脚本攻击(CSRF)

            1、cookie(储存在用户本地终端上的数据)

                 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器。

            2、session(会话)

                 a、代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的。

                 b、cookie中存放着一个sessionID。请求时会发送这个ID。

                 c、session因为请求(request对象)而产生。

                 d、session是一个容器,可以存放会话过程中的任何对象。

                 e、session的创建和使用总在服务端,而浏览器从来都没得到过session对象。

                 f、Session 是一种HTTP存储机制,目的是为无状态的HTTP提供的持久机制。

       3、token(“令牌”)

               是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名)。目前CSRF漏洞主要靠token解决 

             

 

关键信息加密

  控制台提供所有关键信息需要加密,如密码相关的,不但要看控制台,还需要BurpSuit监控请求过程,在传输过程中,所有关键信息是否加密; 在查看配置文件,密码是否加密过的 

目录遍历(Directory traversal)

      目录遍历漏洞原理比较简单,就是程序在实现上没有充分过滤用户输入的…/之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。这里的目录跳转符可以是…/,也可是…/的ASCII编码或者是unicode编码等。

在web控制台页面上,遇到遍历目录文件时,一定要注意文件权限,不允许遍历所有文件目录;

路径篡改

     控制台上,所有需要应用上传、下载时;需要考虑是否存在路径篡改漏洞;测试验证,可以通过BurpSuite来抓取请求过程的传输信息,把文档上传到任意目录;或下载到服务器上任意信息

反序列化漏洞

    序列化是让Java对象脱离Java运行环境的一种手段,可以有效的实现多平台之间的通信、对象持久化存储。

   

Java 序列化是指把 Java 对象转换为字节序列的过程,便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。反序列化是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。

    测试用例太大,上传不了,见 <<关于东方通web中间件console存在命令执行漏洞的情况通报.zip>>

访问日志(任意路径写入)

     访问日志可以自定义日志文件名和文件后缀。在修改文件中,利用../可以对文件进行路径穿越,可以使日志文件部署至 web 可访问路径下,并且在日志格式处利用%{X-Forwarded-For}i 对 xff 进行记录 

   修改方法:1、对相关参数进行过滤,依次过滤“.”、“..”、“/”、“\”等字符。 2、对 xff 内容进行过滤

水平权限和垂直权限漏洞

      水平权限漏洞是指Web应用程序接收到用户请求时,没有判断数据的所属人,或者在判断数据所属人时是从用户提交的参数中获取了userid,导致攻击者可以自行修改userid修改不属于自己的数据。
      漏洞示例:
      XXX/getAddress?id=1
      如上,攻击者修改addressId即可得到他人的address信息。开发容易习惯性的在生成CRUD(增查改删)表单(或AJAX请求)的时候根据认证过的用户身份来找出其有权限的被操作对象的id来提供入口,然后让用户提交请求,并根据这个id来操作相关 对象。在处理CRUD请求时,都天真地默认只有有权限的用户才知道这个入口,进而才能操作相关对象,因此就不再校验权限了。可悲剧的是大多数对象的ID都被设置为自增整型,所以攻击者只要对相关id加1、减1、直至遍历,就可以操作其他用户所关联的对象了。(修改方法,加token就可以

     垂直权限漏洞是指Web应用没有做权限控制,或仅仅在菜单上做了权限控制,导致恶意用户只要猜到了其他页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。

     想要模拟测试:见http://168.1.5.59:8080/browse/ITAIT-3856?filter=-3

    修复方案:

    只需要对url资源进行权限验证即可。


 


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值