首页 > 编程语言 > 详细

python-网络安全编程第十天(web目录扫描&&fake_useragent模块&&optionParser模块)

时间:2020-02-07 10:12:31      阅读:83      评论:0      收藏:0      [点我收藏+]

前言

技术分享图片技术分享图片

昨天的内容没有完成今天花了点时间继续完成了 感觉自己的学习效率太低了!想办法提高学习效率吧 嗯 ,再制定下今天的目标 开始健身。

python fake_useragent模块 

 1.UserAgent

  userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。

 2. fake_useragent

  fake_useragent是一个集成了市面上大部分的user-agent,可以指定浏览器,也可随机生成任意一个

  在工作中进行爬虫时,经常会需要提供User-Agent,如果不提供User-Agent,会导致爬虫在请求网页时,请求失败,所以需要大量User-Agent。如何生成合法的User-Agent?

  使用fake-useragent库就可以解决该问题。

 3.fake_useragent简单使用

示例代码1:

  简单打印出几个user-agent

from fake_useragent import UserAgent
ua=UserAgent() #实例化

print(ua.ie) #随机打印一个ie浏览器的User-Agent
print(ua.random)#随机打印一个User-Agent

输出结果:

技术分享图片

 

示例代码2:

  将useragent带入到header请求头里面进行http请求

from fake_useragent import UserAgent
import requests
ua=UserAgent() #实例化

url="http://baidu.com"
ua=str(ua.random)
headers={User-Agent:ua}

r=requests.get(url=url,headers=headers)
print(r.url)
print(r.headers)

 

请求结果:

技术分享图片

Python-optionParser模块

代码:

from optparse import OptionParser
parser=OptionParser()

#dest是存储变量的 default是缺省值  help是帮助提示
#使用add_option()加入选项
parser.add_option("-u","--url",dest="url",help=target url for scan)
parser.add_option("-f","--file",dest="ext",help="target url ext")
parser.add_option("-t","--thread",dest="count",default=10,help="scan thread_count")
#最后通过parse_args()函数的解析
(options,args)=parser.parse_args()

#当option.url 和option.ext里面的值都为真是则继续执行里面的函数    
if options.url and options.ext:
    print(options.url)
    print(options.ext)
    print(options.count)
else:
    parser.print_help()

正常使用我们在cmd命令界面调用一一输入我们的值即可正常运行

技术分享图片

如果没有输入值则会打印出我们定义的help里面的信息

技术分享图片

输入-help参数也会打印help信息

技术分享图片

参考学习:https://blog.csdn.net/lwnylslwnyls/article/details/8199454

web目录扫描器

代码:

import requests
import queue
import sys
import threading
#from agent_proxy import USER_AGENT_LIST
from fake_useragent import UserAgent
queue=queue.Queue()
from optparse import OptionParser
import sys


class DirScan(threading.Thread):
    def __init__(self,queue):
        threading.Thread.__init__(self)
        self._queue=queue
           
    def run(self):
        while not self._queue.empty():
            url=self._queue.get()
          
            try:
             
                ua=UserAgent()
                ua1=str(ua.random)
              

                headers={User-Agent:ua1}
                r=requests.get(url=url,headers=headers,timeout=8)
              
            
                if r.status_code==200:
                    print(r.url)
                    #sys.stdout.write(‘\r‘+‘[*]%s\t\t‘%(url))
                    f=open(result.html,a+)
                    f.write(<a href="+url+" target="_blank">+url+</a>)
                    f.write(\r\n<br>)
                    f.close
                  
            except Exception as e:
                pass
            
            
def start(url,ext,count):
    
    f=open(result.html,w)
    f.close()
    
    f=open(./dics/%s.txt%ext,r)
    
    for i in f:
        queue.put(url+i.rstrip(\n))

 
#        
    threads=[]
    thread_count=int(count)
#    
    for i in range(thread_count):
        threads.append(DirScan(queue))
    for t in threads:
        t.start()
    for t in threads:
        t.join()
##        
#        
#start("http://www.dokocom.com",‘asp‘,‘10‘);
        
if __name__==__main__:
    print("=====================================\n榆林学院信息安全协会开发V1.0\n超级高速web目录敏感扫描器\n=====================================\n")
    
    parser=OptionParser()
 #   parser=OptionParser()
    parser.add_option("-u","--url",dest="url",help=target url for scan)
    parser.add_option("-f","--file",dest="ext",help="target url ext")
    parser.add_option("-t","--thread",dest="count",default=10,help="scan thread_count")
    (options,args)=parser.parse_args()
    
    if options.url and options.ext:
        start(options.url,options.ext,options.count);
        sys.exit(1)
    else:
        parser.print_help()
        sys.exit(1)
#    

使用方法:

使用方法:python Scan.py http:xxx.com -f asp -t 20
-f: 脚本类型
-t :线程数

 

技术分享图片

如果输入有误提示使用方式:

技术分享图片

会在程序当前目录下生成result.html文件 打开就是扫描的结果

技术分享图片

 

python-网络安全编程第十天(web目录扫描&&fake_useragent模块&&optionParser模块)

原文:https://www.cnblogs.com/xhds/p/12271842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!