1、如何判断当前确实是敏感目录
    方法为:
                1、状态返回码为206即下载
                2、状态返回码为200且不等于404页面的状态返回码
                3、如果定义有友好跳转页面的话,那么可能我们的敏感目录和定义的404页面都会跳转到改友好页面,那么也会误报。

所以我们的策略为:
                1、首先会请求一个不存在的页面,判断方法为:在url后加
justfortesthtmlshifoucunzai.html,如
https://www.bihuoedu.com/vul/sqli/justfortesthtmlshifoucunzai.html,这个时候就跳转到了404页面
https://www.bihuoedu.com/vul/sqli/data

第二种情况:跳转到首页
https://www.bihuoedu.com/vul/waf/waf.php/justfortesthtmlshifoucunzai.html

我们的敏感目录也一样
https://www.bihuoedu.com/vul/waf/waf.php/data

而这个时候,两者的长度都是一样的

此时的核心代码是这样的
 
1
            if errorInject  or newResStatusCode == 206 or ((newResStatusCode == 200) & abs(resLength - len(html404_content))<100):#如果别人定义的有404友好页面,也会跳转到友好页面,这时返回的状态码就是200,而我们要排除这种情况
2
                # 获取请求的url
3
                print newResStatusCode
4
                print resLength
5
                print len(html404_content)
所以我们要改


使用urllib改后,有个问题,当404页面时,无法返回有效信息
def html_404_analyze():
url = "http://45.77.224.25:7001/wls-wsat/CoordinatorPortType/justfortesthtmlshifoucunzai.html"
#print url
try:
html_404 = requests.get(url)
print html_404.status_code
print html_404.content
except Exception as e:
print "sorry"
print e
if __name__ == "__main__":
#request_xxe()
html_404_analyze()

替换为requests模块

务必记得忽略证书,不然会报错

去除js css jpg等路径
 
1
dir_black = ['.html', '.gif', '.js', '.css', '.woff', '.jpg', '.png', '.jpeg']#去除图片js css的地址
2
            url = urlparse(url)
3
            if url.path.endswith not in dir_black:
4
                if url.path.endswith('/'):
5
                    url = url.scheme + '://' + url.netloc + url.path
6
                else:
7
                    url = url.scheme + '://' + url.netloc + url.path+'/'
会有类似.php的文件

所以还要把这个去掉.php的文件,结合上一步,所以就应该这样写
 
1
url = url.scheme + '://' + url.netloc + "/".join(url.path.split('/')[0:-1])+"/"
这样就可以去除掉类似
https://www.bihuoedu.com/assets/js/ace-extra.min.js
就变成了https://www.bihuoedu.com/assets/js/
然后可以愉快的扫描了
终于成功了,呜呜呜


在排除他本身就是302 或301跳转的页面
1
if (ResStatusCode !=302 and ResStatusCode!=301):#如果本身就是一个跳转的页面,我们就不管了