CH8 攻击访问控制

一、常见漏洞
访问控制分为三大类:垂直访问控制、水平访问控制、上下文相关的访问控制

(1)完全不受保护的功能
敏感功能和数据可被任何知道相关URL的用户访问;一些应用程序的敏感功能隐藏在各种不太容易猜测的URL之后,有时候通过审计客户端的代码即可发现。

直接访问方法:如通过API、通过命名规律猜测其他页面

(2)基于标识符的功能
URL中的id可能连续也可能随机,但都是易于攻击的,其次是应用程序日志中包含大量可被用作标识符的数据项

(3)多阶段功能
请求分成多个阶段执行,某些阶段可能能被跳过或水平越权

(4)静态文件

(5)平台配置错误
HTTP请求方法(如可以通过HEAD请求访问GET/POST请求的关键信息)、URL路径、用户角色等

(6)访问控制方法不安全
a. 基于参数的访问控制
b. 基于Referer的访问控制
c. 基于(地理)位置的访问控制
——突破方法:使用位于所需位置的WEb代理服务器;使用在所需位置终止的VPN;使用支持数据漫游的移动设备;直接修改客户端用于确定地理位置的机制

二、攻击访问控制
步骤:
应用程序的功能是否允许用户访问属于他们的特定数据?
是否存在各种级别的用户,是否允许他们访问不同的功能?
管理员是否使用内置在相同应用程序中、以对其进行配置和监控的功能?
发现应用程序的哪些功能或数据资源最有可能帮助攻击者提升当前的权限?
是否存在任何标识符表明正使用某一参数追踪访问控制级别?

(1)使用不同的用户帐户进行测试
步骤 :先使用高级别的帐户确定所有可用的功能,然后使用权限较低的帐户访问这些功能——测试垂直权限提升
如果应用程序隔离用户对不同资源的访问,使用不同的用户级帐户测试访问控制是否有效,或水平权限提升
使用Burp的compare site maps功能,对比两个用户分别登录时的相同点与不同点!

(2)测试多阶段过程
a. 应单独测试每一个请求
b. 尝试发现应用程序确定你是否到达特定阶段的任何位置,尝试使用权限较低的帐户到达该阶段,检测是否可以实施任何权限提升攻击
c. 手动方法:在浏览器中多次完成受保护的多阶段过程,并使用proxy在不同请求中提供的会话令牌切换为权限较低的用户的令牌
d. 快速方法:
使用权限较高的帐户遍历整个多阶段过程;使用权限较低的帐户或不使用帐户登录应用程序;在http history中找到权限较高的用户执行多步骤过程时提出的请求序列,右键选择
request in browser - in current session ,将提供的URL粘贴到以权限较低的用户身份登录的浏览器中;如果应用程序允许,则使用浏览器以正常方式完成剩下的多阶段过程;查看历史记录确定是否可以成功执行特权操作; 以上操作时burp返回的是一个URL的重定向,以不同的用户登录几个不同的浏览器,并将URL粘贴到每个浏览器中进行测试(同一浏览器的窗口会共享cookie)

image.png

(3)通过有限访问权限进行测试
a. 尝试找到没有权限访问的资源的标识符
b. 在标签符中查找任何可预测的序列
c. 发现自动攻击的可能

(4)测试“直接访问方法”(API)
a. 确定任何遵循Java命名约定(如get,set,add,update,is has等)或明确指定包结构的参数,记下所有你能够发现的被引用的方法
b. 找到某个列举可用接口或方法的方法,在代理服务器历史记录中进行搜索,看应用程序的正常通信是否调用了该方法。如果该方法未被调用,则尝试使用观察到的命名约定猜测该方法
c. 在公共资源中查找,以确定任何其他可以访问的方法
d. 猜测其他方法名称
e. 使用各种帐户(含未授权访问)访问收集到的所有方法
f. 如果不知道某些方法需要的参数的数量或类型,可以寻找那些不大可能使用参数的方法,如listInterfaces和getAllUsesrsInRoles

(5)测试对静态资源的控制
使用不同帐户访问,了解命名方案,猜测其他静态文件

(6)测试对HTTP方法实施的限制
a. 使用一个权限较高的帐户,确定一些执行敏感操作的特权请求,如添加新用户或更改用户的安全角色的请求
b. 如果这些请求未受到任何反CSRF令牌或类似功能的保护,可以使用权限较高的帐户确定,如果HTTP方法被修改,应用程序是否仍然执行请求的操作。应测试的HTTP方法包括POST/GET/HEAD/任何无效 的HTTP方法
c. 如果应用程序执行任何使用与最初的方法不同的HTTP方法的请求,则应使用上述标准技巧,通过权限较低的帐户对针对这些请求实施的访问控制进行测试

三、保障访问控制的安全
假设用户知道每个应用程序的URL和标识符,确保应用程序的访问控制足以防止未授权访问
不要信任何用用户提交的表示访问权限的参数
不要认为用户将按设定的顺序访问页面
不要相信用户不会篡改通过客户端传送的数据

仔细评估并记录每个应用程序功能单元的访问控制要求
通过用户会话做出所有访问控制决定
使用一个中央应用程序组件检查访问控制
使用编程技巧确保前面的方法没有例外,均交由中央访问控制机制查询是有效的方法
对于特别敏感的页面,可以通过IP地址进一步限制访问
保护静态页面,方法有:向执行相关访问控制逻辑的服务器端动态页面传送一个文件名,间接访问静态文件,其次,通过HTTP验证或应用程序服务器的其他特性隐藏进入的请求,并在允许访问前检查资源许可,控制用户直接访问静态文件。
任何时候对客户端传送的标识符,都需要对它们进行重新确认
对安全性很关键的应用程序功能,执行重复验证和双重授权
记录执行敏感操作的事件 

多层权限模型:
编程控制:数据库权限保存在一个数据库表中,并以编程的形式来做出访问控制决定
自主访问控制DAC:管理员可将自己的权限分配给其他与拥有特殊资源有关的用户
基于角色的访问控制RBAC
声明式控制:应用程序使用有限的数据库帐户访问数据库,权限是由另一个组件赋予应用程序的。

渗透测试步骤:
a. 应用程序层面的编程检查易于受到注入类攻击
b. 在应用程序服务器层面定义的角色,其定义既不全面,也不完整
c. 低权限操作系统帐户通常仍然能阅读主机文件系统 中保存的各种敏感数据,任何准许他人访问任意文件的漏洞都可以加以利用
d. 应用程序软件本身的漏洞 有助于突破访问控制
e. 在适当位置的一个可供利用的访问控制漏洞可成为重大权限提升攻击的起点

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容

  • 三、攻击访问控制 从逻辑上讲,应用程序的核心安全机制——访问控制建立在验证和会话管理之上,如果应用程序的访问控制存...
    82a7fe2508f4阅读 308评论 0 0
  • 主要表现 强制执行访问控制策略,使用户无法执行超出其预期权限。失败策略通常会导致未经授权的信息披露、修改或销毁或执...
    飞升之路阅读 1,874评论 0 1
  • 1. 访问控制原理1.1 访问控制策略 2. 主体、客体和访问权 3. 自主访问控制3.1 自主访问控制的主要特点...
    MrDecoder阅读 3,220评论 0 0
  • 在Kubernetes中,授权有ABAC(基于属性的访问控制)、RBAC(基于角色的访问控制)、Webho...
    JSNing阅读 1,099评论 0 1
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,535评论 28 53