0

你好!我正在尝试复制脚本以绕过 intelbras 身份验证,但我看到的视频(https://www.youtube.com/watch?v=wu2wwh_gsKA)显示了代码仅适用于 python 2xx 版本的旧方法:

import urllib2
import urllib

def crawl():
    print ('[*] Tentando obter o backup sem Cookie!')
    url = "http://10.0.0.1/cgi-bin/DownloadCfg/RouterCfm.cfg"
    rsp = urllib.urlopen(url)
    html = rsp.read()
    print ('[*] Codigo: %d - Tamanho: %d - URL: %s' % (rsp.code, len(html), url))
def crawl_auth():
    url = "http://10.0.0.1/cgi-bin/DownloadCfg/RouterCfm.cfg"
    req = urllib2.Request(url)
    req.add_header('Cookie', 'language=pt; admin:language=pt')
    rsp = urllib2.urlopen(req)
    html = rsp.read()
    print ('[*] Codigo: %d - Tamanho: %d - URL: %s' % (rsp.code, len(html), url))
    bkp = open('backup.cfg', 'w')
    bkp.write(html)
    bkp.close()
print ('[+] Download realizado com sucesso!')
print ('[+] Roteador Wireless Intelbras 3000N')
print ('[+] Pesquisador Victor Pasknel (Morphus Labs)')
crawl()
crawl_auth()

我正在尝试将代码转换为 python 3xx 版本:

from urllib.request import urlopen
import urllib

def crawl():
    print ('[*] Tentando obter o backup sem Cookie!')
    url = "http://10.0.0.1/cgi-bin/DownloadCfg/RouterCfm.cfg"
    rsp = urllib.request.urlopen(url)
    html = rsp.read()
    print ('[*] Codigo: %d - Tamanho: %d - URL: %s' % (rsp.code, len(html), url))
def crawl_auth():
    url = "http://10.0.0.1/cgi-bin/DownloadCfg/RouterCfm.cfg"
    #req = urllib.request(url)
    #req.add_header('Cookie', 'language=pt; admin:language=pt')
    rsp = urllib.request.urlopen(url)
    request = urllib.request.Request(url, headers='Cookie; language=pt; admin:language=pt')
    html = rsp.read()
    print ('[*] Codigo: %d - Tamanho: %d - URL: %s' % (rsp.code, len(html), url))
    bkp = open('backup.cfg', 'w')
    bkp.write(html)
    bkp.close()
print ('[+] Download realizado com sucesso!')
print ('[+] Roteador Wireless Intelbras 3000N')
print ('[+] Pesquisador Victor Pasknel (Morphus Labs)')
crawl()
crawl_auth()

但我得到了一个错误,那就是:


Traceback (most recent call last): File "HackIntelbras.py", line 25, in <module> crawl_auth() File "HackIntelbras.py", line 15, in crawl_auth request = urllib.request.Request(url, headers='Cookie; language=pt; admin:language=pt') File "C:\Python38\lib\urllib\request.py", line 334, in __init__ for key, value in headers.items(): AttributeError: 'str' object has no attribute 'items'

我的疑问是:我如何或在哪里可以找到解决此问题的方法?如果有人可以帮助我,我不想做任何邪恶的事情,我只需要访问我的路由器进行配置,对于糟糕的英语或非常混乱的帖子感到抱歉......这是我在这里的第一篇文章。

4

1 回答 1

0

根据文档, headers 参数应该是一个字典。所以,request = urllib.request.Request(url, headers='Cookie; language=pt; admin:language=pt')你应该有类似的东西,而不是 :

request = urllib.request.Request(url, headers={"Cookie": "language=pt; admin:language=pt;"})
于 2021-03-11T00:43:09.733 回答