moloch-- / RootTheBox

A Game of Hackers (CTF Scoreboard & Game Manager)
http://root-the-box.com/
Apache License 2.0
915 stars 292 forks source link

Issue: Scoreboard not loading #558

Closed PJNorrisS1 closed 1 year ago

PJNorrisS1 commented 1 year ago

Hi,

We have a strange one. If I create a new instance from 3.13.0 (latest), move our DB in to it, the scoreboard will not display. Just comes up with Loading... image Nothing in log files or on console.

If I go to an existing instance with 3.13.0 - it's working fine. Even if I pull the latest and build the image, it will still load okay. I first thought it might be a requirements.txt dependency again.

Thoughts?

g33kroid commented 1 year ago

I am facing the same issue, and I noticed there is a JS that my Cloudflare blocks because of a Cross-Origin issue, but not sure how to solve it

# [ Server ]
origin = "ws://127.0.0.1:8888"
listen_port = 8888
listen_interface = "0.0.0.0"
session_age = 2880
x_headers = False
ssl = False
certfile = ""
keyfile = ""
admin_ips = []
autoreload_source = True
webhook_url = None

image

If I am using the internal IP the scoreboard works fine

eljeffeg commented 1 year ago

beacon.min.js is not part of RootTheBox. It's a analytic for cloudflare. https://developers.cloudflare.com/analytics/web-analytics

eljeffeg commented 1 year ago

@g33kroid in your case, I'd take a look at your origin (set it to your external hostname "wss://mydomain.com") and probably also turn x_headers to true. Not sure if this is the same issue as @PJNorrisS1 but I will try to reproduce it.

eljeffeg commented 1 year ago

I haven't been able to reproduce this yet with a sqlite database.

PJNorrisS1 commented 1 year ago

I’m sorry. It’s not you… it’s me. I use nginx proxy manager and when we set up the new host, we hadn’t enabled websocket support. Doh! I’m sorry.

bdesforges commented 12 months ago

@PJNorrisS1 can you please share how you were able to enable websocket support for your front end nginx server configuration ?

PJNorrisS1 commented 12 months ago

Hey - I used NGinX Proxy Manager to host our front ends. On there is a checkbox for Websocket support. Sorry to be vague :-)

eljeffeg commented 11 months ago

On the RTB configuration, make sure your x_headers are set to True and origin is properly defined for your front end host.domain.

bdesforges commented 11 months ago

Thanks @eljeffeg . I did set your x_headers are set to True (it was there by default) as well as played with a number of values for origin . I reviewed a number of issues in the repo, as well as the (incomplete?) wiki page you referenced in other posts as well.

I think maybe what what I have trouble understanding is whether these apply to a standalone RTB setup, or to a docker setup. I use the docker setup.

When I access RTB with the local IP address, everything works great, but when I access it through my own reverse proxy, I get errors on the websocket requests. The value of origin doesn't seem to matter for me, as the browser always end up requesting wss://host.domain/... which ends up failing. Changing wss to wss, or adding a port (such as 8888) doesn't change what the browser ends up requesting.

I'll see if I can make it work with the nginx manager to see if i can somehow extract the nginx configuration from it.