def complete(p,r,c,d):
print("[+] Bruteforce Completed.")
if c == 0:
print("[+] Given parameters are "+Style.BRIGHT+Fore.GREEN+"not vulnerable"+Style.RESET_ALL+" to XSS.")
elif c ==1:
print("[+] %s Parameter is "+Style.BRIGHT+Fore.RED+"vulnerable"+Style.RESET_ALL+" to XSS.")%c
else:
print("[+] %s Parameters are "+Style.BRIGHT+Fore.RED+"vulnerable"+Style.RESET_ALL+" to XSS.")%c
print("[+] Scan Result for %s:")%d
print bg(p,r)
again()
error①:
在brutexss源代码中有个complete的方法,它的作用是将请求时的请求参数、容易攻击的参数个数、执行逻辑的状态值、域名调用到该方法中打印相对应的结果,并打印bg()方法的执行结果;但"c==0"这个逻辑中还存在其他的异常情况,比如说:当根据字典请求接口参数时,在未发现XSS漏洞的前提下遇到服务器请求失败,“c”的值仍为0,反馈的结果便是“该URL参数不容易受到攻击”。
我目前的解决方法,在get()、post()方法,遇到httperror的逻辑中添加多一个"total"的值,并回到complete编写该值的结果输出,避免产生错误报告,如下图。
error②:
第二个错误也是在"complete()"方法中,“c”指的是逻辑返回值,而输出结果的意思应该是“XX参数是易攻击的”,显然而知,开始以为是参数的编号且与存在XSS漏洞的参数编号不匹配,仔细一看才发现是逻辑的返回值。
该错误的方法也很简单,让get()、post()返回多一个"pn"值,“pn”即使发现xss漏洞的参数,"complete(p, r, c, d)"中添加多个接收值如"complete(p, r, c, d, pp)",而结果输出代码如上图将"c"改为"pp"即可。