检测的主要流程:
发送随机flag -> 确定参数回显 -> 确定回显位置以及情况(html,js语法解析)
-> 根据情况根据不同payload探测 -> 使用html,js语法解析确定是否多出来了标签,属性,js语句等等。
在拿到一个域名后开始深度检索存在的所有链接(href,src),在经过数据清洗后得到有用的页面(去除js等其他目录)
def SearchDir(TestUrl):
header = {
'User-Agent':
'Mozilla / 5.0(Windows NT 10.0; Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 73.0.3683.75Safari / 537.36'
}
html = requests.get(TestUrl,header)
print(html.text)
_html = BeautifulSoup(html.text,'lxml')
href_all = re.findall(r"href=\".+?\"", str(_html))
src_all = re.findall(r"src=\".+?\"", str(_html))
NoNeedDir = ['.js','.css','.jpg','.png','javascript','.gif','.bmp']
for i in href_all:
#判断是否为同一域名
flag_http = 0
if 'http://' in i :
if TestUrl in i:
flag_http=1
else:
continue
i = i.replace('href=','')
i = i.replace('"',"")
flag = 0
for p in NoNeedDir:
if p in i:
flag=1
break
if flag==0:
if flag_http == 1:
if i in urlList:
continue
urlList.append(i)
else:
url = TestUrl + i
if url in urlList:
continue
urlList.append(url)
for i in src_all:
flag_http = 0