Skip to content

0xnhsec/SAVF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SAVF

Stack-Aware Vulnerability Fingerprinter (Clientside and ServerSide)

to be continue. but if u r intrested, may u can ask AI for this. see ya, goodluck

fish

# 1. Rename + chmod
mv cve_scan.py savf
chmod +x savf

# 2. Symlink ke PATH (pilih salah satu)
sudo ln -sf "$(pwd)/savf" /usr/local/bin/savf
# atau tanpa sudo, kalau ~/.local/bin ada di PATH:
ln -sf "$(pwd)/savf" ~/.local/bin/savf

# 3. Test
savf --help
python3 -c "
import requests, warnings, sys
warnings.filterwarnings('ignore')
sys.path.insert(0, '.')
from detector.stack import detect

result = detect('DOMAIN TARGET')
print('Frontend:', result['frontend'])
print('Library versions:', result['library_versions'])
print('Node.js:', result['nodejs'])
"
# Test manual dulu dari Kali kamu
python3 -c "
import requests, warnings
warnings.filterwarnings('ignore')
from bs4 import BeautifulSoup

s = requests.Session()
s.headers['User-Agent'] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
r = s.get('DOMAIN TARGET', timeout=15, verify=False)
print('Status:', r.status_code)
print('Body len:', len(r.text))

signals = ['__NEXT_DATA__', '_next/static', '__next_f']
for sig in signals:
    print(f'{sig}:', sig in r.text)

soup = BeautifulSoup(r.text, 'html.parser')
for tag in soup.find_all('script', src=True)[:5]:
    print('script:', tag['src'][:80])
"
python3 -c "
import requests, warnings
warnings.filterwarnings('ignore')
s = requests.Session()
s.headers['User-Agent'] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'

# Fetch salah satu script yang mengandung jquery
r = s.get('DOMAIN/API/JS', 
          timeout=15, verify=False,
          headers={'Range': 'bytes=0-50000'})
print('Status:', r.status_code)
# Cari version string
import re
for pat in [r'jquery:\s*[\"\']([\d.]+)', r'jQuery v([\d.]+)', r'jquery\.fn\.jquery\s*=\s*[\"\']([\d.]+)']:
    m = re.search(pat, r.text, re.IGNORECASE)
    if m:
        print(f'Found: {m.group(0)}')
        break
else:
    # Print sample untuk manual inspect
    print('No match. Sample:', r.text[:300])
"

About

Stack-Aware Vulnerability Fingerprinter (Clientside and ServerSide)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors