javascript
  • encryption
  • rsa
  • 2017-10-14 6 views -1 likes 
    -1

    J'ai trouvé un script étrange dans mon code:Rsaencrypt et étrange fonction Javascript (e, t, r, n, c, a, l)

    <script type="text/javascript"> 
    n = 'D70ED106DEF035D7DB732C7C0B91F403B6C4A7F2FD5581483A700202482EF829302ED828F68AAAAC093AEFEB64B51882FD3AF350394182AD3E09D3C4FCA1D326A28F4D21759755130B8BB529F5A395DE829B13B070FCCCD507EDA5623EC22B91E080F35AC48E8A4EFD1BB64A1B79BEEF9A325598C430F5D8475297705B727BDD8E5CE1CDFF3BBE8D860B673CDB37681F82D9CF9DDE9E40E638B24E47DBBA9775410B1C0717B3B45F021AB4B633E2CE314DEA93576F318F671AB36509C0936FB7C5108324617D6EFD83B8369C75B7F7743A78E8CC98872C4FF1D83BFC0B7892F20BB869AC9185D82AA6D601F2036F18698661994EE02FDE7EDF6850C09EF05A445A965B4DC5B59CCCF3EB04F8B9AF5895DB7246F24546E34382A4CC221D3C680465906AB38DA8C13CAB72217B2145391E9A446A18116AF05F4DA10632E5C1F1A65DCE313E7DD081C2D374254CE2FD717B0EB346B2B8DD58487C3553398F6EABB816A6A4F1FA94BAE116EEEEC1EAABF4067A2D9B9C02275B61BC3FFB9F324BC0788E941120E772FACE5B16C46B4830DB0E842D1495385AA299D682E2981DF0B952A3B41CCA3DE2FEDD3C70AF63B57303B24F731F1C422D59701C25FEFE47D67CBC72EADD82D23B0374EEE5787D66DC15D68F873FE0BC49347274DF40B047D00BCB7E4068FDAAB74497F5A606AA1E67ED13A30C851AFF014A4F1C7DB9AB629BB693'; 
    e = '010001'; 
    </script> 
    <script>!function(e,t,r,n,c,a,l){function i(t,r){return r=e.createElement('div'),r.innerHTML='<a href="'+t.replace(/"/g,'&quot;')+'"></a>',r.childNodes[0].getAttribute('href')}function o(e,t,r,n){for(r='',n='0x'+e.substr(t,2)|0,t+=2;t<e.length;t+=2)r+=String.fromCharCode('0x'+e.substr(t,2)^n);return i(r)}try{for(c=e.getElementsByTagName('a'),l='/cdn-cgi/l/email-protection#',n=0;n<c.length;n++)try{(t=(a=c[n]).href.indexOf(l))>-1&&(a.href='mailto:'+o(a.href,t+l.length))}catch(e){}for(c=e.querySelectorAll('.__cf_email__'),n=0;n<c.length;n++)try{(a=c[n]).parentNode.replaceChild(e.createTextNode(o(a.getAttribute('data-cfemail'),0)),a)}catch(e){}}catch(e){}}(document);</script></script> 
    

    Les n valeur change à chaque rechargement de la page .

    J'ai modèle de ma page Web de travailleur indépendant et d'abord vouloir vérifier avant de publier, étrange pour moi parce que je ne peux pas trouvé attributs dans le code comme data-cfemail ou .__cf_email__ DonT aussi quelque chose comme /cdn-cgi/l/email-protection#

    S'il vous plaît me dire ce qu'il fait? Cela peut être malveillant? Avoir à tester ce qu'il fait?

    +0

    Vous avez trouvé ce script dans votre code ??!?!? Si vous ne l'avez pas écrit, qui d'autre aurait pu faire cela? Et il semble qu'il réécrit chaque lien contenant des courriels, probablement pour empêcher les scripts automatiques de les escroquer –

    +0

    Laissez-le expliquer et documenter. Pourquoi voudriez-vous avoir un code non-supportable? –

    +0

    Demandez à votre pigiste ce qu'il fait. – Ryan

    Répondre

    2

    Le code commence par

    e /*document*/ .getElementsByTagName('a') 
    

    Il obtient tous les liens sur la page, itère sur eux et si le lien contient

    /cdn-cgi/l/email-protection# 
    

    il fait:

    a.href='mailto:'+o(a.href,t /*the position of the upper inside the link*/+l.length /*the length of the upper*/) 
    

    Theres une autre boucle à l'intérieur du code itérant sur

    e.querySelectorAll('.__cf_email__') 
    

    et remplace ces textes d'éléments avec:

    o( 
        a /* one of the upper elems*/ .getAttribute('data-cfemail'), 
        0 
    ) 
    

    Donc, la chose intéressante est en fait la fonction mystérieuse o. Ce itère sur la chaîne passée et convertit les paires de 2 octets:

    String.fromCharCode('0x'+e.substr(t,2) /*the pair*/^n); 
    

    alors n est:

    n='0x'+e.substr(t,2)|0 
    

    donc en gros il fait un xor basé sur les deux premiers octets. Donc ceci:

    A1 B2 C3 D4 
    

    se traduira par

    B2^A1 
    C3^A1 
    D4^A1 
    

    Ce résultat est alors réduit à une URL dynamique en utilisant un petit truc, puis retourné. Donc, fondamentalement, il s'agit d'une sorte de protection email, qui utilise un cryptage xor très basique pour crypter le contenu. Et c'est tout.


    Pour tester ce comportement il suffit de mettre un lien dans votre contenu un lien vers:

    //the start link we need: 
    /cdn-cgi/l/email-protection# 
    //the xor encryption disabler as (a^0 = a) 
    00 
    //[email protected] in hex 
    74657374406578616d706c652e636f6d 
    

    Et vous verrez que ça va vous reliez à [email protected]

    Test environment


    je peux conclure: ce script est un cryptage de lien e-mail sans danger, si vous havent tout lien ou texte en utilisant ce cryptage est probablement un code à gauche sur une version antérieure.

    Je nai trouvé aucune indication que les deux variables n et e changer quoi que ce soit ...

    0

    Im désolé, n'est pas que des sites mr.robot d'œufs de Pâques? http://www.conficturaindustries.com/

    screen from site with this script

    Êtes-vous sûr que ce soit votre code?

    Son email encodage sript, si vous regardez le code de la page de résultats, vous ne trouverez pas de e-mails là-bas, il sera disponible en tant que lien que si vous vous concentrez sur l'affichage du site visuel

     Questions connexes

    • Aucun problème connexe^_^