任意文件读取和php代码执行
ssrf http协议
第四章:BurpSuit插件之逻辑越权
一、实现功能
平行(垂直)越权
未授权访问
敏感信息泄露
说明:该脚本不适宜官网或登录主页,比较适宜后台管理或运营平台等系统
二、实现原理
2.1 平行(垂直)越权
所有的越权均是由于对用户的身份校验不严格导致,所以可以登录两个账户A和B,抓取A的cookie或token填入脚本中,然后登录B测试所有功能,如果A和B两个用户返回的数据包长度相等,例如A访问一个页面和使用B的cookie访问同一页面的页面长度相等,则有可能存在越权
核心代码实现:
去除身份标识字段如cookie信息,然后手工加一个cookie字段
核心代码实现
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、敏感信息泄露
两个思路:
第一:用当前的登录用户的手机号、用户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()