## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-FEVAR54-CVE-2024-42461
# Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ ECDSA ΠΈ EDDSA
## ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Wycheproof Π±ΡΠ»ΠΈ Π²ΡΡΠ²Π»Π΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ ECDSA ΠΈ EDDSA. ΠΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ Π½ΡΠ»Π΅Π²ΡΠ΅ Π±Π°ΠΉΡΡ, ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΠ΅ΠΌ. ΠΠ°Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ `signature.js` ΡΠ΅ΡΠ°Π΅Ρ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π° ΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π»ΠΈΠ½Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ.
## Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
1. ΠΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:
root@kitploit:~
git clone https://github.com/tu_usuario/tu_repositorio.git
2. ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°: cd tu_repositorio
3. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ: npm install **ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅**
4. ΠΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ elliptic: var elliptic = require('elliptic'); var eddsa = elliptic.eddsa; var ec = new elliptic.ec('secp256k1')
5. ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ: var ed25519 = new eddsa('ed25519'); var key = ed25519.keyFromPublic('7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa', 'hex');
// VerificaciΓ³n de firma EDDSA var msg = '54657374'; var sig = '7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d00'; console.log(key.verify(msg, sig));
// VerificaciΓ³n de firma ECDSA var hash = require('hash.js'); var toArray = elliptic.utils.toArray; var hashMsg = hash.sha256().update(toArray(msg, 'hex')).digest(); var pubKey = ec.keyFromPublic('04b838ff44e5bc177bf21189d0766082fc9d843226887fc9760371100b7ee20a6ff0c9d75bfba7b31a6bca1974496eeb56de357071955d83c4b1badaa0b21832e9', 'hex'); console.log('Valid signature: ' + pubKey.verify(hashMsg, sig));