TDCTF Academy Logo TDCTF ACADEMY

EH-15: CSRF - Cross-Site Request Forgery

Tools: curl


cd ~ && mkdir -p eth-l15 && cd eth-l15
cat > server.py << 'PYEOF'
from flask import Flask, request, jsonify
app = Flask(__name__)
balance = 50000
@app.route('/transfer', methods=['POST'])
def transfer():
global balance
amount = int(request.form.get('amount',0))
to = request.form.get('to','')
if amount > 0 and balance >= amount:
balance -= amount
return jsonify({"status":"transferred", "to":to, "amount":amount, "remaining":balance})
return jsonify({"error":"failed"}),400
app.run(port=9013)
PYEOF
python3 server.py &
sleep 1
echo "=== 1. Normal Transfer ==*"
curl -s -X POST http://localhost:9013/transfer -d "amount=1000&to=budi"
echo ""
echo "=== 2. CSRF via HTML (concept) ==*"
echo '<html><body>'
echo '<h1>Lihat foto lucu ini!</h1>'
echo '<img src="http://localhost:9013/transfer?amount=50000&to=attacker" width="0" height="0">'
echo '</body></html>'
echo "Korban buka halaman → transfer occurs tanpa sadar!"
kill %1 2>/dev/null

Refleksi: CSRF memanfaatkan cookie otomatis browser. Solusi: CSRF token untuk setiap form/API yang mengubah state.


Generated by @farishhz Agent Pentest Pipeline - TDCTF Security Academy

PADA HALAMAN INI

Tidak ada sub-judul