Google Dorking 자동화
이미 많이 알려진 google dorking.. 업무상으로나 호기심으로 가끔 특정사이트에 대한 dorking 을 시도해 보게 되는데
그리 잦은 일이 아니라 그동안은 수작업으로 해왔었다. 개인적인 이유+필요에 의해서 이번에 파이썬을 이용해서
간단하게 자동화를 해 보았다. 단점은 몇번 이상 쿼리를 날리면 제한되는 듯 하다. 아마도 구글 정책인 것 같다 :)
쿼리 간격을 랜덤하게 조절하고 에이전트를 바꿔주면 상관없이 될 것 같긴 하지만, 그렇게 쿼리를 많이 날릴 필요가
아직은 없기에 나중에 추가할 예정 :)
# googledorking.py
#-*- encoding:utf8 -*- import json import urllib import sys
class googledock:
def __init__(self,site,query,queryfilename="query.lst"): self.pages = 10 self.query = query self.qfile = queryfilename self.site = site
def search(self): results = [] for page in range(0,self.pages): rsz = 8 args = {'q' : "site:" + self.site + " " + self.query,'v' : '1.0','start' : page*rsz, 'rsz': "large",'safe' : "off", 'filter' : 1 } q = urllib.urlencode(args) search_results = urllib.urlopen('http://ajax.googleapis.com/ajax/services/search/web?' + q) data = json.loads(search_results.read()) results.append(data) return results
def get_urls(self): """Returns list of result URLs""" results = [] searchresult = self.search() for data in searchresult: for result in data['responseData']['results']: if result: results.append(urllib.unquote(result['unescapedUrl'])) return results
if __name__ == "__main__": if len(sys.argv) != 2: print "Usage : %s [URL]\n [ex] %s www.target12345.com" % (sys.argv[0],sys.argv[0]) sys.exit() site = sys.argv[1] f = open("query.lst") print "Starting GoogleDorks..." for querystr in f.readlines(): print "[query : %s ]" % querystr.strip() g = googledock(site,querystr.strip()) g.pages = 1 resultset = g.get_urls() for url in resultset: print "\t- ", url |
내용이랄 것도 없고...그저 파일에 담긴 쿼리 리스트를 읽어와서 패킷을 전송하고 응답문을 보여준다.
아래는 실행 결과이다. 도메인은 *로 가렸다.
C:\Users\hyunmini\Desktop\book\code\1.googledock>python googledork.py .org Starting GoogleDorks... [query : inurl:admin ] - http://*.org/project/admin - http://en.*.org/wiki/admin - http://firstsearch.*.org/admin/ ... [query : filetype:sql intext:user ] - https://www.*.org/trac/browser/branches/rewrite-user-management/docs/powerad - http://www.*.org/trac/browser/contributed_modules/modules/a2billing/a2b/DataBas - http://*.org/trac/browser/guacamole-auth-mysql/schema/002-create-admin-user.sq ... [query : filetype:bak inurl:"asp|jsp|php" ] - http://www.*.org/home/_baks/home.php.0055.38ec.bak - https://*.org/City Manager Message/_baks/CityManagerMessage.php.0030.da7 - http://www.*.org/government/generalinfo/_baks/hours.php.0012.907c.bak ... [query : intext:"Microsoft OLE DB" +intext:"오류" filetype:asp ] - http://www.*.org/network_information/network_directory/directory_details2.asp - http://www.*.org/help/FAQdetail.asp?FAQid=18 - http://www.*.org/gen3/data/clubs/ship_conf.asp ... |
어디선가 하루 100번 쿼리 제한이라고 들었던것 같긴 한데 확실친 않다. 나중에 확인해 봐야지...ㅎ
그럼 이만!
'Web Hacking' 카테고리의 다른 글
sessionid 추측 공격 (1) | 2013.05.23 |
---|---|
Banner Grabbing ( 배너 정보 수집 ) (0) | 2013.05.20 |
Filtering 발견 및 우회 테크닉 (2) | 2013.03.26 |
javascript 난독화(Obfuscation) (0) | 2013.03.21 |
[SQL Injection] - Oracle Error based SQL Injection (0) | 2012.10.18 |