当前位置: 首页 > news >正文

肃宁县网站建设价格新月直播大全免费下载手机版

肃宁县网站建设价格,新月直播大全免费下载手机版,在putty做网站要拷贝什么,株洲网站建设优化文章目录 前言源码分析dirpro.pystart.pybackup.pyrely.pyresults.pyend.py 前言 工具简介 dirpro 是一款由 python 编写的目录扫描器专业版#xff0c;操作简单#xff0c;功能强大#xff0c;高度自动化 自动根据返回状态码和返回长度#xff0c;对扫描结果进行二次整理… 文章目录 前言源码分析dirpro.pystart.pybackup.pyrely.pyresults.pyend.py 前言 工具简介 dirpro 是一款由 python 编写的目录扫描器专业版操作简单功能强大高度自动化 自动根据返回状态码和返回长度对扫描结果进行二次整理和判断准确性非常高项目地址 项目已在github开源求个star嘻嘻嘻 https://github.com/coleak2021/dirpro已实现功能 可自定义扫描线程导入url文件进行批量扫描并分别保存结果状态码429检测自动退出程序并提示设置更小的线程每扫描10%自动显示扫描进度可自定义扫描字典文件可自定义代理流量自动使用随机的User-Agent自动规范输入的目标url格式根据输入的url动态生成敏感目录强大的默认字典top10000自动根据返回状态码和返回长度对扫描结果进行二次整理和判断扫描结果自动生成 域名时间 格式的防同名文件名 并保存到scan_result目录中 扫描参数 options:-h, --help show this help message and exit-u U url-t T thread:default30-w W dirfile path-a A proxy,such as 127.0.0.1:7890-f F urlfile,urls in the file-b fastly to find backup files and sensitive files源码分析 目录结构 dirpro.py 项目入口接受传入的参数并调用函数进行后续操作 if not args.f:rooturl args.u.strip(/)(time1,ret)__start(args,rooturl)__end(rooturl,time1,ret)else:urlfileopen(args.f, r)urls urlfile.read().splitlines()for rooturl in urls:rooturl rooturl.strip(/)(time1,ret) __start(args, rooturl)__end(rooturl,time1,ret)判断是否传入url文件初始化处理掉url末尾的/调用__start(args,rooturl)返回(time1,ret)然后调用__end(rooturl,time1,ret)对扫描结果进行处理 start.py sem threading.Semaphore(args.t)urlList []urlList.extend(searchFiles(rooturl))限制线程的最大数清空urlList(防止多url文件扫描时前面生成的urllist影响后续url扫描)调用searchFiles(rooturl)生成敏感目录并将结果加入到urllist中 if args.a:proxies[http] fhttp://{args.a}proxies[https] fhttp://{args.a}判断是否加入代理 if args.b:sem threading.Semaphore(5)searchdir(urlList,sem,rooturl)else:if not args.w:defaultword ./wordlist/defaultelse:defaultword args.wf open(defaultword, r)files f.read().splitlines()for file in files:urlList.append(f{rooturl}/{file})f.close()searchdir(urlList,sem,rooturl)return (time_1,ret)判断扫描方式是快速扫描还是普通扫描快速扫描需要设置小的线程快速扫描自带的字典比较小普通扫描判断是否传入字典文件将字典中的dir加载到url中调用 searchdir(urlList,sem,rooturl)最后返回(time_1,ret) backup.py searchFiles(rooturl)生成敏感目录并将结果加入到urllist中 for file in FILE_LIST:urlList.append(f{rootUrl}/{file})urlList.append(f{rootUrl}/{file}.bak)urlList.append(f{rootUrl}/{file}~)urlList.append(f{rootUrl}/{file}.swp)urlList.append(f{rootUrl}/.{file}.swp)urlList.append(f{rootUrl}/.{file}.un~)加入备份文件目录 SOURCE_LIST [.svn, .svn/wc.db, .svn/entries, # svn.git/, .git/HEAD, .git/index, .git/config, .git/description, .gitignore # git.hg/, # hgCVS/, CVS/Root, CVS/Entries, # cvs.bzr, # bzrWEB-INF/web.xml, WEB-INF/src/, WEB-INF/classes, WEB-INF/lib, WEB-INF/database.propertie, # java.DS_Store, # macosREADME, README.md, README.MD, # readme_viminfo, .viminfo, # vim.bash_history,.htaccess]for source in SOURCE_LIST:urlList.append(f{rootUrl}/{source})加入源代码文件目录 suffixList [.rar,.zip,.tar,.tar.gz, .7z]keyList [www,wwwroot,site,web,website,backup,data,mdb,WWW,新建文件夹,ceshi,databak,db,database,sql,bf,备份,1,2,11,111,a,123,test,admin,app,bbs,htdocs,wangzhan]num1 rootUrl.find(.)num2 rootUrl.find(., num1 1)keyList.append(rootUrl[num1 1:num2])for key in keyList:for suff in suffixList:urlList.append(f{rootUrl}/{key}{suff})加入压缩文件目录 rely.py 扫描功能集中在这个文件 def __random_agent():user_agent_list [{User-Agent: Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)},{User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36}, ......]return random.choice(user_agent_list)使用随机user_agent def searchdir(urlList,sem,rooturl):global dglobal _semglobal _listd0_semsemthread_array []nlen(urlList)kint (n/10)for i in range(1,10):_list.append(k*i)print(f[*]开始扫描{rooturl})for i in urlList:t Thread(target __get,args(i,))thread_array.append(t)t.start()for t in thread_array:t.join()_list存放进度条信息for循环将调用get方法加入线程列表通过t.join()设置除非子线程全部运行完毕否则主线程一直挂起 def __get(url):count 0global dwith _sem:while count 3:try:r requests.get(url,headers__random_agent(),proxiesproxies)except:count 1continuebreak#判断请求是否成功if count 3:print(fvisit failed:{url})returnllen(r.text)if r.status_code ! 404 and r.status_code ! 429:log f{r.status_code:6}{l:7}{url}print(log)elif r.status_code 429:print(Too Many Requests 429 so that Request terminated,please Set up smaller threads)os._exit(0)d 1if d in _list:print(f[*]已经扫描{(_list.index(d)1)*10}%)# 添加到retret.append({status_code: r.status_code,length: l,url: url})with _sem相当于 sem.acquire(), sem.release() 锁定信号的变量sem在线程内阻塞等待前面的线程执行结束。就是说实际上有多少任务就会开多少线程只是超过限制的部分线程在线程内阻塞 os._exit(0) 这里判断返回码出现429则退出整个程序如果用exit()则只能退出子线程 results.py 对扫描结果进行二次整理和判断 tf./scan_result/{rooturl.split(//)[1].replace(:, )}{int (time.time())}try:f open(t, w,encodingutf-8)except:f open(f{int (time.time())}, w,encodingutf-8)设置保存扫描结果的文件名 for result in ret:statusCode result[status_code]length result[length]statusCodeMap[statusCode] statusCodeMap.get(statusCode, 0) 1lenMap[length] lenMap.get(length, 0) 1统计返回长度和状态码的个数 for result in ret:if result[length] ! maxLength:__log(f{result[status_code]:6}{result[length]:7}{result[url]})f.close()return t打印异常的状态码和长度对于的url end.py result __Results(rooturl,ret)time2 time.time()print(总共花费: , time2 - time1, 秒,, f结果保存在{result})ret.clear()将ret清空以免影响后续的扫描
http://www.yutouwan.com/news/303470/

相关文章:

  • 焦作市网站建设哪家好网络技术服务公司
  • led网站制作关于网站的制作
  • 做任务得佣金的网站网站建设中服务器的搭建方式有几种
  • 网站推广策略100例wordpress文档预览
  • 深圳电商网站wordpress 制作落地页
  • 品牌网站建是啥动漫专业最好的学校
  • google提交网站入口怎样免费建立自己网站
  • 设计数码产品宣传网站怎么做一家网站
  • 黄页88网怎么推广六安seo地址
  • 职业中学网站建设财务软件免费
  • 西安做网站的公司深圳英文网站设计
  • 建设摩托官方网站花生壳可以用来做网站吗
  • 马鞍山的网站建设公司哪家好微信小程序直播开通条件
  • 编程代码网站直播秀场网站开发
  • 俄文网站推广浏览器地址栏怎么打开
  • 姑苏网站制作商业广告公司排名
  • qq群推广网站免费秒进php+ajax网站开发典型实例pdf
  • 宁波网络推广渠道seo优化必备技巧
  • 网站建设软硬件平台有哪些如何做自己的简历网站
  • fullpage网站怎么做wordpress主题模版
  • 龙华网站建设服务网络推广策划方案模板
  • 登陆网站空间angularjs做网站
  • 网站建设代理都有哪些企业做的网站计入什么科目
  • 中国建设企业网站邯郸做网站就找安联网络
  • 汽车网站大全网页设计师可转行培训
  • 爱站网排名网站建设成本预测表
  • 网站建设特效大全网站开发专业培训
  • 网站申请支付宝支付高港做网站
  • 怎么才能登网站做外贸广州seo报价
  • 专业群建设网站个人网站域名起名