主页 > 网络知识 > 基于BurpSuit插件打造渗透测试自动化之路(6)

基于BurpSuit插件打造渗透测试自动化之路(6)

 

基于BurpSuit插件打造渗透测试自动化之路

任意文件读取和php代码执行

 

 

基于BurpSuit插件打造渗透测试自动化之路

ssrf http协议

 

 

基于BurpSuit插件打造渗透测试自动化之路

 

 

 

 

 

第四章:BurpSuit插件之逻辑越权

 

一、实现功能

平行(垂直)越权

未授权访问

敏感信息泄露

说明:该脚本不适宜官网或登录主页,比较适宜后台管理或运营平台等系统

二、实现原理

2.1 平行(垂直)越权

所有的越权均是由于对用户的身份校验不严格导致,所以可以登录两个账户A和B,抓取A的cookie或token填入脚本中,然后登录B测试所有功能,如果A和B两个用户返回的数据包长度相等,例如A访问一个页面和使用B的cookie访问同一页面的页面长度相等,则有可能存在越权

核心代码实现:

去除身份标识字段如cookie信息,然后手工加一个cookie字段

 

基于BurpSuit插件打造渗透测试自动化之路

 

核心代码实现

 


    def parallelTest(self,reqMethod,newReqUrl,heaers,ResBodys,resLength):

try:
            if reqMethod == "GET":
                response = requests.get( newReqUrl, headers=heaers,
                                            verify=False, allow_redirects=True, timeout=5)

else:

response = requests.request(reqMethod,newReqUrl, headers=heaers,  data=ResBodys,
                                     verify=False, allow_redirects=True, timeout=5)
            responseContent = response.content
        except Exception as e:
            print e
            responseContent = ""
            pass

if len(responseContent)==resLength:
            content = '[+]{} -> {} [Headers] -> {} [Bodys] -> {}'.format('[MayBe Parallel Find]', newReqUrl, heaers,
                                                                           ResBodys)
            print content
          self.save(content)

 

 

2.2、未授权访问

类似平行越权,只是去除cookie类字段后,不添加任何身份标识字段,借以达到未授权测试的目的

2.3、敏感信息泄露

 

基于BurpSuit插件打造渗透测试自动化之路

两个思路:

第一:用当前的登录用户的手机号、用户id号等做正则匹配,匹配返回数据包或提交的body里面是否含有此类字样,如有,则有可能通过遍历获取其他用户信息,或者返回包包含有敏感信息,查看html,一般会有form表单类样,也可以尝试越权

第二:正则匹配手机号等,查看一些接口的返回数据包是否有敏感信息

核心代码实现:

 

if (1==1):
            newReqUrl = self.get_request_url(protocol, reqHeaders,host,port)
            blackFile = ['.js','.css','.jpg','.png','.gif','v=1.0','.ico','woff2','timestamp','.ttf','.jpeg','woff','img']
            #print newReqUrl
            newHeaders = reqHeaders[2:]

for header in newHeaders:
                if ('Authorization' not in header)  and ('token' not in header) and  ('Cookie' not  in header):
                    heaers[header.split(':')[0]] = "".join(header.split(':')[1:]).replace(" ","")
            heaedersParaller = heaers.copy()

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!