v3n0m-Scanner / V3n0M-Scanner

Popular Pentesting scanner in Python3.6 for SQLi/XSS/LFI/RFI and other Vulns
GNU General Public License v3.0
1.44k stars 409 forks source link

Proxy not working?? #209

Closed kattstof closed 1 year ago

kattstof commented 2 years ago

Might be a bug on my end but it seems when proxy is enabled it isn't actually going through the proxy, when using the proxy_enabled code in its own script it goes through just fine so the code is valid, but if ran through v3n0m itself it doesn't. will do a fresh install tonight to see if it's a environment issue.

vittring commented 2 years ago

You're using Tor as the proxy, yes?

kattstof commented 2 years ago

Yessir , and its not a enviroment issue as far as i can tell because i tested it on a fresh vm just to be sure. From what i gathered It seems its a bug in socksipy being not compatible with asyncio but instead of throwing an exception is just ignores it and continues without using a proxy . And setting proxy requests to use socks5 manually just throws an exception due to incompatibility with asyncio/threading. Using pysocks instead of socksipy gets me abit further , but tor ends up rejecting the request with "[Warning] Rejecting SOCKS request for anonymous connection to private address"

vittring commented 2 years ago

Okay, it looks like it's specifically socksipy that is broken.

vittring commented 2 years ago

I've isolated it to within socksipy as you've suggested was the issue. Unfortunately, I can't diagnose it either.

kattstof commented 2 years ago

Luckily the updated list of ~3000 headers seems to work (for now) to negate the requirement for tor, in my limited testing, i'll keep this open until I/someone else can figure out the issue

vittring commented 2 years ago

I was thinking the same. Maybe time to stop requiring Tor?

I've also fixed a dependency issue leading to a HTTP injection vulnerability in #210.

aiohttp 3.7.4.post0 -> 3.8.0.post0

kattstof commented 2 years ago

Merged also removed note about tor requirement and replaced with a statement to use proxies/vpn because without doing so they (end users) will get flagged by akamai which wont affect them being able to use venom but would make said ip blacklisted from alot of websites (including psn/nvidia) until akamai decides the ip is no longer dirty (which could take from a few days to a few months)

vittring commented 2 years ago

Confirmed. If anybody has any questions about why we don't automatically integrate Tor this is why. Unforeseen circumstances that we can't resolve one way will be resolved in another.

This doesn't change the effectiveness of the program. It only changes how you need to think about when using it.

Has anybody else - including the ones who have forked this project, besides myself and @kattstof - been able to torify this in a roundabout way?

I always believed it was pretty archaic to force one way of thinking.

kattstof commented 1 year ago

Well i must say i feel stupid. The reason the proxy doesn't work is because the implementation of f_menu(). every time you call f_menu() it will re-write proxy enabled.

edit: at first global scope didn't want to work but tor is now working

code for proxy

 def  ignoring_get(url):
        proxies = {'http': 'socks5h://127.0.0.1:9050', 'https': 'socks5h://127.0.0.1:9050'}
        header = [line.strip() for line in open("lists/header", "r", encoding="utf-8")]
        ua = random.choice(header)
        headers = {"user-agent": ua}
        try:
            try:
                if proxy == True:
                    response = requests.get(url, headers=headers,proxies=proxies, timeout=2)
                    response.raise_for_status()
                if proxy == False:
                    response = requests.get(url, headers=headers, timeout=2)
                    response.raise_for_status()
            except Exception:
                return ""
            return response.text
        except Exception as verb:
            print(str(verb))