• 13
  • 13
分享
  • 记录一次PiKachu靶场实战之水平越权——软件测试圈
  • 曼倩诙谐 2021-08-25 10:30:00 字数 1159 阅读 1399 收藏 13

  一、 越权

  越权,指攻击者绕过权限认证对功能或敏感内容进行非授权访问,例如:使用用户A的权限去操作用户B的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞的产生源于系统对用户提交信息缺少必要的权限校验,导致其他用户的信息或用户数据被非法篡改或查询。该漏洞导致的直接结果是信息泄露,严重程度取决于信息的敏感程度。

  一般越权漏洞容易出现在权限页面(如查询类操作、账号修改、转账交易)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,服务端需对请求报文中的身份校验参数进行合法性校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

  二、水平越权

  水平越权指的是某用户通过越权操作同类型别的用户的账号内容。

  用户A和用户B属于同一级别用户,但各自不能操作对方个人信息。用户A如果越权操作用户B个人信息的情况称为水平越权操作,Pikachu靶场有两个用户,分别为“lucy”和“lili”,密码都为123456.

1-1.png

  以用户“lucy ”身份登陆,可以看到地址栏里“url为op1_mem.php?username=lucy&submit=点击查看个人信息”:

1-2.png

  退出“lucy”,登录“lili”用户,此时可以看到地址只有username不同:

1-3.png

1-4.png

  在”lili”账号下开启抓包:

1-5.png

  在抓包工具里将抓到的报文中的“lili”修改为“lucy”:

1-6.png

  点击发送,可以在以“lili”权限下看到“lucy”的具体信息:

1-7.png

  三、原因分析:

  只判断是否登陆,没有用session校验。

1-8.png

  查看function.php中的check_op_login函数,只是判断了['op']['username']和['op']['password']是否被定义:

1-9.png

  查看登录页面的代码,发现所有用户名登录后都会定义['op']['username']和['op']['password']。

1-10.png

  因为在查看信息的界面,只判断了是否登录,并没有判断是哪个用户。

  四、优化建议

  在重要操作(如转账交易、查询类操作、账号修改)时,系统应对用户权限进行校验,防止水平越权:

  1.用户级操作,用户身份信息通过session中获取,避免通过客户端上送的用户信息被恶意篡改,导致越权执行他人权限操作;

  2.如果客户端必须上送操作对象参数,系统应在服务器端对用户输入数据的合法性和有效性进行校验,判断请求的账号是否为登陆客户本人账户,防止水平越权(如用户A通过修改ID越权对用户B的账号进行操作);

  3.在校验过程中,不要给页面返回账户相关信息,整个校验工作流程都在服务端完成,只传递给页面成功或失败的状态结果。



作者:陈明坤   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   8 月 2 日,格力电器在河北召开“格力冰洗生活电器战略发布会”,董事长兼总裁董明珠在会上透露,格力正在开发一款“不要电”的空调。这项技术的开发始于 2012 年,并经历了十几年的创新与改进。  董明珠指出,当前的光伏发电系统通常需要通过逆变器来转换电能,但格力的创新之处在于无需逆变器,直接将光伏系统与空调对接,实现了发电与制冷的一体化。  此外,随着技术的不断升级,格力现已推出光储空系统,彻底摆脱了对城市电网的依赖。格力在家庭别墅中做了一个全新的样板,通过光伏能源、储能系统和夜间的峰谷电与空调结合,确保满足整个家庭的用电需求,包括家电和照明,真正实现了 0 电费。  据董明珠此前介绍,2...
            0 0 472
            分享
          •   新浪科技讯北京时间1月4日上午消息,据报道,谷歌挖来了长期负责微软人工智能伦理工作的米拉·雷恩(MiraLane),加入该公司的技术和社会问题团队。  此举正值谷歌及整个科技行业因为日益复杂的人工智能模型而面临伦理挑战之际。  雷恩之前在微软领导一个综合学科团队,负责与伦理数据收集、生成式人工智能数据、人脸识别和负责任产品设计有关的问题。她加入谷歌后将向詹姆斯·曼伊卡(JamesManyika)汇报工作,后者一年前加入谷歌,出任技术及社会高级副总裁。这个成立不久的团队还吸引了苹果搜索业务前负责人斯里尼瓦森·万卡塔查理(SrinivasanVenkatachary)加盟。  雷恩本人已经确认...
            0 0 950
            分享
          •   首先作为一个初级测试人,我对初级的定义一般是在 0 到 5 年,或者 0 到 3 年。要回答这个问题,先明确的一点是,前面我们讲到测试已经不是以前传统的测试,是一个大的测试,是一个广义的测试,那么在这种情况下,测试分为三类人:一类是做业务功能的测试;一类就是做自动化测试,把这些业务功能的测试转换成自动化的脚本;那么第三类人就是做测试平台、测试工具、测试服务开发的。  你首先需要明确的是,你想在这三块当中所做的是哪一块?明确了这个之后,我们再来看每一块怎么去做发展。  第一类,你想做一个业务的专家, 也就是说你怎么来把业务做得非常的精通。这类人在将来应该还是比较吃香的,但是,这类人的数量应该...
            0 0 882
            分享
          •   一、简介  微软开源自动化测试工具Playwright,支持主流浏览器,包括:Chrome、Firefox、Safari 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,可以结合主流测试框架使用,并且支持浏览器端的自动化脚本录制等功能。  特点:  ·跨浏览器:Playwright 支持所有现代渲染引擎,包括Chromium、WebKit 和 Firefox;  · 跨平台:在 Windows、Linux 和 MacOS 上进行本地或 CI、无头或有头测试;  · 跨语言:在 TypeScript、JavaScript、Pytho...
            0 0 4038
            分享
          • PO模式:Page Object,PO模式是自动化测试项目开发实践的最佳设计模式之一。核心思想:通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素位置发生变化,只需要调整页面封装的代码,提高测试用例的可维护性、可读性。优点: 减少了冗余代码业务代码和测试代码被分开,降低耦合性维护成本低缺点:结构复杂:基于流程做了模块化的拆分案例一:自动发送短信方法:Appium+PO模式+Pytest框架数据参数化模块分布base模块:前置代码和基本操作,base_driver.py对应打开driver,base_action.py对应元素定位、点击按钮和输入。page模块:对应操作页面,考...
            0 0 1108
            分享
      • 51testing软件测试圈微信