Skip to content

POC 的 self.url 总是包含默认端口,建议默认端口可省略 #438

Description

@ViCrack

在 pocsuite3/lib/core/poc.py 的 POCBase.build_url 方法中,当前无论端口是否为默认端口(如 http 的 80,https 的 443),最终返回的 URL 都会带上端口号。例如:http://example.com:80https://example.com:443

建议在构造 self.url 的时候,省略 http 默认端口,这样才符合习惯,更简洁。例如:http://example.comhttps://example.com

if (self.current_protocol not in protocol_default_port_map or
self.current_protocol == POC_CATEGORY.PROTOCOL.HTTP):
if self.scheme not in ['http', 'https']:
self.scheme = 'https' if str(self.rport).endswith('443') else 'http'
self.rport = self.rport if self.rport else 443 if self.scheme == 'https' else 80
else:
# adjust protocol
self.scheme = self.current_protocol.lower()
# adjust port
if not self.rport:
self.rport = protocol_default_port_map[self.current_protocol]
self.netloc = f'[{self.rhost}]:{self.rport}' if is_ipv6 else f'{self.rhost}:{self.rport}'
pr = pr._replace(scheme=self.scheme)
pr = pr._replace(netloc=self.netloc)
target = pr.geturl()

self.url = self.build_url()
if self.url != self.target:
logger.debug(f'auto correct url: {mosaic(self.target)} -> {mosaic(self.url)}')

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions