未授权理论知识记录
目录
一.简答题
问题1:findsomething找到的接口在使用之前应该经过怎样的处理
问题2:https://xxx.com/#/user中的#是什么,对我们挖掘未授权有什么影响
问题3:findsomething处理后的数据,在拼接爆破时要注意什么
问题4:有了接口,应该如何去找参数?说一下你知道的几个找参数的方法
问题5:小庆通过查找Js找到一个隐藏的查询接口,但是在Burp中拼接路径访问后得到的响应是500,此时你有什么思路?
问题6:浏览器如何在Js中搜索关键字?流程是什么
问题7:哪些场景下我们需要去分析Js?
问题8:未授权分为哪几种?哪一类出现的概率更大,为什么
二、场景分析题
场景1:
场景2:
场景3:
一.简答题
问题1:findsomething找到的接口在使用之前应该经过怎样的处理
首先将findsomething中找到的数据复制到txt文本文件中,然后进行下面方式的处理:
1. 删除脏数据 比如./$这种没有任何特殊意义的
2. 等于号赋值 在文本文件中全局搜索=,在id=等需要赋值的参数后面赋值1
3.冒号赋值 在文本文件中全局搜索/:在后面赋值,在/:id等参数处将其改为赋值1
问题2:https://xxx.com/#/user中的#是什么,对我们挖掘未授权有什么影响
#是Vue框架的特征,代表在拼接时#匹配到指定的路由后显示不同的路由页面或接口状态,在进行未授权测试时,注意不要去掉这个路径符号,在#/后手动添加对应接口和路径去挨个测试,用burp批量去跑页面不会进行更改,在测试带和不带两种情况尽可能的都尝试,有时会出现不同的情况的页面.
问题3:findsomething处理后的数据,在拼接爆破时要注意什么
首先区分页面是根据路由还是接口进行页面数据的回显,在进行拼接尝试时,注意是否是直接拼接还是在baseurl的基础上进行拼接,在路由回显状态时,需要通过手动方式挨个拼接访问,如果是接口状态时,将get和post两种请求方式都跑一遍查看返回的响应的状态码,存在功能接口参数时,通过在页面全局js搜索对应功能参数,再进行功能参数的拼接访问
问题4:有了接口,应该如何去找参数?说一下你知道的几个找参数的方法
全局js检索接口关键词(在网络的搜索处模糊或精确搜索接口)
在历史请求包中搜索获取
fuzz和根据接口的上下文接口进行猜测
通过接口返回的报错信息获取
问题5:小庆通过查找Js找到一个隐藏的查询接口,但是在Burp中拼接路径访问后得到的响应是500,此时你有什么思路?
1.找到这个隐藏查询接口的前一步的页面接口的鉴权包,找到鉴权参数比如isadmin或isvip等将1改为0或者是false改为true后,再进行尝试
2.通过bypass插件进行尝试
3.更改请求头(Header)中的ConentType等参数
问题6:浏览器如何在Js中搜索关键字?流程是什么
打开浏览器,通过F12查看网络,然后刷新页面,如果返回信息的功能接口为
/xx/abv/adas/asda/function
首页在全局搜索处搜/xx/abv/adas/asda/function,看能否搜索到,如果没有继续进行abv/adas/asda/function搜索,直到搜索到为止,如果接口的功能参数字段过长,比如说ares_man_pageDoctorListFromEs,也可以只搜索ares_man_或者pageDoctorListFromEs字段搜索全文的字段.
问题7:哪些场景下我们需要去分析Js?
- 没有权限:无法进入的页面,比如登录界面
- 权限过低:登录后为普通用户,较多功能无法使用
- 页面功能不全:比如后台管理页面缺少增,删,改,查其中一项功能时,需要寻找隐藏接口
- 有功能接口但缺少功能参数:功能接口缺少功能参数或者需要获取其他的功能参数来调用不同的功能
问题8:未授权分为哪几种?哪一类出现的概率更大,为什么
0权限到有权限 (网站没有设置鉴权机制)
低权限到高权限 这种概率较高,因为这种情况是开发不严谨,而第一种是完全没有做鉴权机制
路由或者接口的未授权
二、场景分析题
场景1:
小庆发现了一个功能点存在新增用户和删除用户两个功能,但是删除用户按钮无法点击,也就是功能无法使用,小庆抓取的新增用户的接口如下
/UserControl/data/scrm/user/addUser
问题:小庆此时想找到删除用户的接口来测试一下未授权,你作为大黑客应该怎么帮他找到这个接口
打开网站页面,然后打开网络,进行刷新页面,然后根据当前接口进行分析,依次搜索功能接口
/UserControl/data/scrm/user/addUser 没有
/data/scrm/user/addUser 没有
/scrm/user/addUser 没有
/user/addUser 没有
/addUser 没有
一次进行缩小范围的搜索功能接口,或者根据页面现有的相近的功能接口按照上面的方式进行搜索,如果还未找到的话,可以尝试通过获取的相近的几个功能接口的参数比如updateUser 猜测功能接口为delUser进行尝试
场景2:
小庆来到一个招聘平台,此时身份是求职者,通过一系列操作发现了该平台企业方(也就是招聘方)的几个敏感接口,构造接口和参数后尝试访问这几个接口,但提示403无权限
小庆再分析了一下该网站,发现该网站可以尝试申请招聘者身份,小庆填写完自己的信息之后提交,显示身份审核中,但小庆突然发现刚才的几个敏感接口,有一个可以用了,通过这个接口,小庆最后发现了一个水平越权漏洞
问题:请问这个站点的问题出在哪里,如果你是开发,你会如何修复这个漏洞
应对进行招聘者申请功能,审核中的用户做严格的权限校验,通过后的用户增开放对应的功能权限,未通过的用户不能添加权限.
场景3:
小庆来到一个管理平台,成功登录进去,但发现里面没有可用的功能点,小庆猜测该站点存在管理员,最终在一番操作下,成功找到了一个管理员才能用的查询当前站点所有用户的查询接口,最后拼接上baseurl,再到浏览器的网址中输入并且回车访问,发现页面提示500,即访问失败,遂小庆认为此处没有漏洞,决定耻辱下播并去吃个大餐犒劳一下自己
但吃着吃着有人和他说自己挖到了洞,小庆一看,正是刚才自己认为没洞的这个查询接口,小庆很疑惑,明明就是个get请求,自己的参数也正确,为什么浏览器范围页面就是显示500,而Burp上访问就能成功获取数据呢?
问题:请你为小庆答疑解惑
需要携带网站特殊的请求头(Header),然后再进行重放测试