1.pyqt4写的界面 find_ui.py
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
 | 
#-*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui    try:     _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError:     def _fromUtf8(s):         return s    try:     _encoding = QtGui.QApplication.UnicodeUTF8     def _translate(context, text, disambig):         return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError:     def _translate(context, text, disambig):         return QtGui.QApplication.translate(context, text, disambig)    class Ui_Form(object):     def setupUi(self, Form):         Form.setObjectName(_fromUtf8("Form"))         Form.resize(516, 467)         self.label = QtGui.QLabel(Form)         self.label.setGeometry(QtCore.QRect(20, 10, 54, 16))         self.label.setObjectName(_fromUtf8("label"))         self.edit_address = QtGui.QLineEdit(Form)         self.edit_address.setGeometry(QtCore.QRect(80, 10, 351, 20))         self.edit_address.setObjectName(_fromUtf8("edit_address"))         self.button_search = QtGui.QPushButton(Form)         self.button_search.setGeometry(QtCore.QRect(440, 10, 61, 23))         self.button_search.setObjectName(_fromUtf8("button_search"))         self.text_all = QtGui.QTextEdit(Form)         self.text_all.setGeometry(QtCore.QRect(20, 40, 411, 261))         self.text_all.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)         self.text_all.setObjectName(_fromUtf8("text_all"))         self.label_2 = QtGui.QLabel(Form)         self.label_2.setGeometry(QtCore.QRect(20, 320, 54, 12))         self.label_2.setObjectName(_fromUtf8("label_2"))         self.text_exist = QtGui.QTextEdit(Form)         self.text_exist.setGeometry(QtCore.QRect(20, 340, 411, 64))         self.text_exist.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)         self.text_exist.setObjectName(_fromUtf8("text_exist"))         self.label_3 = QtGui.QLabel(Form)         self.label_3.setGeometry(QtCore.QRect(380, 310, 91, 20))         self.label_3.setText(_fromUtf8(""))         self.label_3.setObjectName(_fromUtf8("label_3"))         self.edit_add = QtGui.QLineEdit(Form)         self.edit_add.setGeometry(QtCore.QRect(20, 420, 411, 20))         self.edit_add.setObjectName(_fromUtf8("edit_add"))         self.button_add = QtGui.QPushButton(Form)         self.button_add.setGeometry(QtCore.QRect(440, 420, 71, 23))         self.button_add.setObjectName(_fromUtf8("button_add"))         self.label_4 = QtGui.QLabel(Form)         self.label_4.setGeometry(QtCore.QRect(20, 440, 251, 16))         self.label_4.setObjectName(_fromUtf8("label_4"))            self.retranslateUi(Form)         QtCore.QMetaObject.connectSlotsByName(Form)        def retranslateUi(self, Form):         Form.setWindowTitle(_translate("Form", "目录探测工具", None))         self.label.setText(_translate("Form", "网站地址:", None))         self.button_search.setText(_translate("Form", "探测", None))         self.label_2.setText(_translate("Form", "结果:", None))         self.button_add.setText(_translate("Form", "添加地址", None))         self.label_4.setText(_translate("Form", "例如:/admin/manager.asp  请以斜杠开始", None)) | 
2. 启动文件 start.py
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
 | 
#!/usr/local/bin/python #coding=utf-8   import sys import os import time import httplib import re from PyQt4 import QtCore, QtGui from threading import Thread    from find_ui import Ui_Form       class MyForm(QtGui.QMainWindow):     def __init__(self, parent=None):         QtGui.QWidget.__init__(self, parent)         self.ui = Ui_Form()         self.ui.setupUi(self)         QtCore.QObject.connect(self.ui.button_search,QtCore.SIGNAL("clicked()"), self.startthread)         QtCore.QObject.connect(self.ui.button_add,QtCore.SIGNAL("clicked()"), self.addAddress)     def startSearch(self):         self.ui.label_3.setText("")          self.getAddress()         address=str(self.ui.edit_address.text())         self.accessAddesss(address)                def startthread(self):         t1=Thread(target=self.startSearch,)         t1.start()                           def getAddress(self):         try:             global addresslist             addresslist=[]             filePath=os.getcwd()+"\\address.txt"           # if not os.path.isfile(filePath):             #    print ‘aaa‘                          #   return 0                              fileAddress=file(filePath,"r")             for address_line in fileAddress.readlines():                 if address_line not in addresslist:                     addresslist.append(address_line)                     pass                 pass             pass             fileAddress.close()                        except:             #self.ui.text_all.setText(‘aaa‘)             self.ui.text_all.setText(u‘打开文件错误‘)             pass         finally:             #fileAddress.close()             pass        # print addresslist[0]            def accessAddesss(self,host):         try:             print host             print len(addresslist)             for oneAddress in addresslist:                 print len(addresslist)                 oneAddress=oneAddress.replace("\n","")                 print oneAddress                 connection=httplib.HTTPConnection(host,80,timeout=10)                 connection.request("GET",oneAddress)                 response=connection.getresponse()                 result=response.reason                 resultNum=response.status                                    if "OK" in result or "Forbidden" in result:                     getaddress="http://"+host+oneAddress+"------"+str(resultNum)+":"+result                     self.ui.text_exist.append(getaddress)                 else:                     self.ui.text_all.append("http://"+host+oneAddress+"------"+str(resultNum)+":"+result)                                        connection.close()         except Exception as e:             print e.message         self.ui.label_3.setText(u"探测完成")          self.ui.label_3.colorCount()               def  addAddress(self):         try:             filePath=os.getcwd()+"\\address.txt"                  fileAddress=file(filePath,"a")             newAddress="\n"+str(self.ui.edit_add.text())             print newAddress             fileAddress.write(newAddress)             fileAddress.close()         except Exception as e:             print e.message               if __name__ == "__main__":     app = QtGui.QApplication(sys.argv)     myapp = MyForm()     myapp.show()     sys.exit(app.exec_()) | 
3.address.txt 扫描地址名单文件,可以通过编辑改文件制定自己的规则,你懂的~~
/admin.php
/admin/
/administrator/
/moderator/
/webadmin/
/adminarea/
/bb-admin/
/adminLogin/
/test/login.jsp
/source/login.php
www.qytang.com/
http://www.qytang.com/cn/list/29/
http://www.qytang.com/cn/list/28/404.htm
http://www.qytang.com/cn/list/28/397.htm
http://www.qytang.com/cn/list/28/396.htm
http://www.qytang.com/cn/list/28/395.htm
http://www.qytang.com/cn/list/28/394.htm
http://www.qytang.com/cn/list/28/393.htm
http://www.qytang.com/cn/list/28/391.htm
http://www.qytang.com/cn/list/28/389.htm
http://www.qytang.com/cn/list/28/388.htm
http://www.qytang.com/cn/list/28/362.htm
http://www.qytang.com/cn/list/28/358.htm
http://www.qytang.com/cn/list/28/351.htm
http://www.qytang.com/cn/list/28/348.htm
http://www.qytang.com/cn/list/28/340.htm
http://www.qytang.com/cn/list/28/338.htm
http://www.qytang.com/cn/list/28/336.htm
http://www.qytang.com/cn/list/28/330.htm
原文:http://www.cnblogs.com/qytang/p/5588213.html