Décodage de T-SQL CAST en C

Récemment, notre site a été inondé par la résurgence du Asprox botnet attaque par injection SQL. Sans entrer dans les détails, l'attaque tente d'exécuter du code SQL en encodant les commandes T-SQL dans une chaîne BINARY encodée en ASCII. Cela ressemble à ceci :

DECLARE%20@S%20NVARCHAR(4000);SET%20@S=CAST(0x44004500...06F007200%20AS%20NVARCHAR(4000));EXEC(@S);--

J'ai pu décoder cela en SQL, mais j'étais un peu méfiant car je ne savais pas exactement ce qui se passait à ce moment-là.

J'ai essayé d'écrire un outil de décodage simple, afin de pouvoir décoder ce type de texte sans même toucher à SQL

请先 登录 后评论

1 réponses

Michael Stum

Essayez d'abord de supprimer le 0x puis appelez Encoding.UTF8.GetString. Je pense que ça peut marcher.

Essentiellement : 0x44004500

Supprimez le 0x, puis deux octets sont toujours un caractère :

44 00 = D

45 00 = E

6F 00 = o

72 00 = r

Il s'agit donc bien d'un format Unicode/UTF avec deux octets/caractère.

请先 登录 后评论
  • 0 abonnés
  • 0 favoris,387 Feuilleter
  • Dillie-O posée à 2022-12-10 02:31