Komut satırından web dosyalarını gönderme. Bükümün çıkarılması ve yapılandırılması. Diğer yararlı kıvrılma seçenekleri hakkında birkaç kelime

  • 24.04.2019

Dikkatine sunmak yeni kurs takımdan Kodlu. - "Web uygulamalarını sıfırdan nüfuz etmek için test etmek." Genel teori, Çalışma ortamının hazırlanması, pasif faz ve parmak izi, aktif fazlama, güvenlik açıkları, işlem sonrası, araçlar, sosyal naviye ve çok daha fazlası.


Bir kaynak:

cURL bir pakettir yazılımYarar komut satırı ve URL sözdizimini kullanarak veri iletimi için kütüphaneler.

cURL onları DICT, Dosya, FTP, FTPS, Gopher arasında, çeşitli protokolleri kadar oturur, HTTP, HTTPS, IMAP IMAPS LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS Telnet ve Tftp.

Ayrı bir dosya yükle

Aşağıdaki komut, URL'nin içeriğini alır ve standart çıkışta (yani terminalinizde) görüntülenir.

Kıvrım https://mi-al.ru/\u003e mi-al.htm% Toplam% Alınan% Xferd Ortalama Hız Zaman Zaman Zaman Güncel DLOAD Yükleme Toplam Sol Hız 100 14378 0 14378 0 0 5387 0 Harcanan -: - : - - 00:00:02 -: -: - 5387

Dosyaya Curl çıkışını kaydetme

  • -Ö. (Ö. alt kayıt) Sonuç, komut isteminde belirtilen dosyaya kaydedilecektir.
  • -Ö. (Ö. Üst Kayıt) Dosya adı URL'den alınacak ve elde edilen verileri kaydetmek için kullanılacaktır.
$ Bukle -o mygettext.html http://www.gnu.org/Software/getText/manual/getText.html

Şimdi GetText.html sayfası, 'MyGetText.html' adıyla dosyaya kaydedilecektir. Curl, Option -O ile çalıştığında, ilerleme ölçeğini aşağıdaki gibi görüntüler.

% Toplam% Alınan% Xferd Ortalama Hız Zaman Zaman Zaman Güncel DLOAD YÜKLE TOPLAM SOL HIZINI 66 1215K 66 805K 0 0 33060 0:00:37 0:00:24 0:00:13 45900 100 1215K 100 1215K 0 0 39474 GEÇİRİLEN 0 00:00:31 00:00:31 -: -: - 68987

CURL -O (O Üst Kayıt) kullandığınızda, kendi başına içeriği yerel makineye 'GetText.html' adlı dosyaya kaydeder.

$ Curl -o http://www.gnu.org/software/gettext/manual/gettext.html

NOT: Bukleler terminale veri yazması gerektiğinde, baskı ölçeğini kapatır, böylece yazdırılan verilerde bir karışıklık olmaz. Dosyaya sonuç aktarmak için '\u003e' | -O '|' -O 'seçeneklerini kullanabiliriz.

Aynı anda birden fazla dosyayı seçme

Bir seferde birden fazla dosya yükleyebiliriz, tüm URL'yi komut satırındaki ayarlayabiliriz.

Curl -O URL1 -O URL2

Aşağıdaki komut, hem index.html hem de gettext.html dosyasını indirir ve bunları geçerli dizindeki aynı adlarla kaydeder.

Kıvrım -o http://www.gnu.org/software/gettext/manual/html_node/index.html -o http://www.gnu.org/Software/getText/manual/getText.html

Lütfen yukarıda gösterildiği gibi bir sunucudan birden fazla dosyayı indirdiğimizde, Curl bağlantıyı tekrar kullanmaya çalışacaktır.

-L seçeneğiyle başlıklardaki HTTP konumunu izleyin

Varsayılan olarak, CURL başlıklarındaki (yönlendirmeler) HTTP konumunu takip etmemektedir. İstenen web sayfası başka bir yere taşındığında, karşılık gelen cevap aktarılır http başlıkları Yer.

Örneğin, birisi Google.com'u ülkesinden bir tarayıcı çubuğunda yazdırdığında, otomatik olarak 'google.co.xx' için yönlendirilirler. Bu, aşağıda gösterildiği gibi HTTP konum başlığının temelinde yapılır.

Curl https://www.google.com/?gws_rd\u003dssl. 302 taşındı.

302 taşındı.

Döküman buraya taşındı.

Yukarıdaki sonuç, istenen belgenin 'http://www.google.co.th/' na taşındığını söylüyor.

Yönlendirmeleri takip etmek için curl belirleyebilirsiniz, bu, aşağıda gösterildiği gibi -L seçeneği kullanılarak yapılır. Şimdi yüklenecek kaynak Htmls://www.google.co.th/?gws_rd\u003dssl adresinden html.

Curl -l https://www.google.com/?gws_rd\u003dssl

Önceki indirmenin devamı / düzeltilmesi

-C seçeneğini kullanarak, herhangi bir sebepten dolayı durdurulmaya devam edebilirsiniz. Büyük dosyaların yüklenmesini keserken yararlı olacaktır.

Eğer '-c -' diyirsek, indirin, ardından indirmek için hangi yerden aranacak. Ayrıca -C'yi de ayarlayabiliriz<смещение>'. Önceden belirlenmiş bir bayt ofseti kaynak dosyanın başından itibaren atlanacaktır.

Başlat büyük indir Curl ve indirmenin ortasında durmak için CTRL-C tuşlarına basın.

$ Bukle -o http://www.gnu.org/Software/getText/manual/getText.html 20.1% ##############

İndirme% 20,1 oranında durduruldu. CURL -C - "Durdurduğumuz yerden indirmeye devam edebiliriz. Şimdi% 20,1'den devam etmek için indiriliyor.

CURL C - \u003d O http://www.gnu.org/Software/getText /Manual/getText.html ###############% 21.1

Veri aktarım hızı sınırı

Veri aktarım hızı seçeneğinin miktarını sınırlayabilirsiniz. Geçebilirsin azami hız Bir argüman olarak.

$ Curl --Limit-hızı 1000b -O http://www.gnu.org/software/gettext/manual/gettext.html

Yukarıdaki komut, transfer oranını 1000 bayt / saniye ile sınırlandırır. CURL, zirvelerin üzerindeki hızı kullanabilir. Ancak ortalama hız yaklaşık 1000 bayt / saniye olacaktır.

İlerleme göstergesi yukarıda sunulan komut için aşağıda gösterilmiştir. Bu mevcut hızı 1000 baytlık alanda görebilirsiniz.

% Toplam% Alınan% Xferd Ortalama Hız Zaman Zaman Zaman Güncel DLOAD YÜKLE TOPLAM SOL HIZINI 1 1215K 1 13601 0 0 957 0 0 0:00 0:00:14 0:21:26 999 1 1215K 1 14601 0 0 960 GEÇİRİLEN 0 0:21:36 0:00:15 0:21:21 999 1 1215K 1 15601 0 0 962 0 0 0:01:34 0:00:16 0:21:18 999

Dosyayı yalnızca belirli bir zamandan sonra / sonra değiştirilirse yükleyin

CURL'deki -Z seçeneğini kullanarak belirli bir süre sonra değiştirilmiş dosyaları alabilirsiniz. FTP ve HTTP için çalışacaktır.

$ Curl -z 20-Ağu-14

Yukarıdaki komut, YY.HTML'yi yalnızca belirtilen tarih ve saatten daha sonra değişirse indirecektir.

Yukarıdaki komut, değiştirildiyse dosya dosyasını indirir. belirtilen tarih ve zaman.

Tarih ifadeleri için çeşitli desteklenen sözdizimleri hakkında daha fazla bilgi edinmek için 'adam curl_getdate' tuşlaması.

CURL'da HTTP Kimlik Doğrulamasının Geçişi

Bazen web siteleri içeriğini görmek için bir kullanıcı adı ve şifre gerektirir. -U seçeneğini kullanarak, bu kimlik bilgilerini aşağıda gösterildiği gibi Web sunucusuna frenlemeden aktarabilirsiniz.

$ Curl -U Kullanıcı Adı: Şifre URL

Not: Varsayılan olarak, Curl, temel HTTP kimlik doğrulamasını kullanır. -NTLM kullanarak diğer kimlik doğrulama yöntemlerini ayarlayabiliriz | -Sindirmek.

FTP sunucusundan dosya yükleme

curl ayrıca dosyaları indirmek için de kullanılabilir. Ftp sunucuları. Belirtilen FTP yolu bir dizin ise, içindeki varsayılan dosya listesi görüntülenecektir.

$ Curl -u ftpuser: ftppass -o ftp: //ftp_server/public_html/xss.php

Yukarıdaki komut, xss.php dosyasını FTP sunucusundan indirir ve yerel dizinde kaydeder.

$ Curl -u ftpuser: ftppass -o ftp: // ftp_server / Public_html /

Burada URL dizini ifade eder. Sonuç olarak, Curl, bir dosya ve dizinlerin bir listesini yapacaktır. belirtilen URL adres.

Bantları kullanarak liste / yük.

CURL, URL'de belirtilen aralıkları destekler. Aralık verildiğinde, bu aralıktaki karşılık gelen dosyalar indirilecektir. FTP Siteleri Aynalarından Paketler Yüklendiğinde yararlı olacaktır.

$ curl ftp://ftp.uk.debian.org/debian/pool/main//

Yukarıdaki tüm paketlerin bir listesini yapacak a-Z aralığı terminalde.

Dosyaları FTP sunucusuna boşaltma

Curl ayrıca -T seçeneğiyle FTP sunucusunu boşaltmak için de kullanılabilir.

$ Curl -u ftpuser: ftppass -t myfile.txt ftp://ftp.testserver.com

Yukarıdaki komut, MyFile.txt adlı dosyayı FTP sunucusuna kaldıracaktır. Bantları kullanarak birden fazla dosyayı bir kerede boşaltabilirsiniz.

$ Curl -u ftpuser: ftppass -t "(file1, file2)" ftp://ftp.testserver.com

İsteğe bağlı olarak, kullanabiliriz "." Standart girişten elde etmek ve uzak bir makineye aktarmak için.

$ Curl -u ftpuser: ftppass -t - ftp://ftp.testserver.com/myfile_1.txt

Yukarıdaki komut, kullanıcıdan standart girişten çıktı alır ve içeriğini 'myfile_1.txtxt' adı altında FTP sunucusuna kaydedin.

Her URL için '-T'yi ayarlayabilirsiniz ve her bir çift adres dosyası ne boşaltılacağını belirleyecektir.

Sözel ve izleme seçeneğinde artışla daha fazla bilgi

-V seçeneğini kullanarak ne olduğunu öğrenebilirsiniz. Option -v, sözlü modu ve yazdırma ayrıntılarını içerir.

Curl -v https://www.google.co.th/?gws_rd\u003dssl.

Yukarıdaki ekip aşağıdakileri gösterecektir

* URL'yi yeniden oluşturma: https://www.google.co.th/?gws_rd\u003dssl * HostName idi BULUNAMADI. 27.123.17.49 çalışılıyor DNS Önbelleği'nde * ... * www.google.co.th (27.123.17.49) Liman 80 (# 0)\u003e GET / HTTP / 1.1\u003e User-Agent bağlantılı: CURL / 7.38.0\u003e HOST : www.google.co.th\u003e kabul: * / *\u003e< HTTP/1.1 200 OK < Date: Fri, 14 Aug 2015 23:07:20 GMT < Expires: -1 < Cache-Control: private, max-age=0 < Content-Type: text/html; charset=windows-874 < P3P: CP="This is not a P3P policy! See https://support.google.com/accounts/answer/151657?hl=en for more info." * Server gws is not blacklisted < Server: gws < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < Set-Cookie: PREF=ID=1111111111111111:FF=0:TM=1439593640:LM=1439593640:V=1:S=FfuoPPpKbyzTdJ6T; expires=Sun, 13-Aug-2017 23:07:20 GMT; path=/; domain=.google.co.th ... ... ...

Daha fazlasına ihtiyacın olursa detaylı bilgi, Sonra -Trace seçeneğini kullanabilirsiniz. -Trace seçeneği, belirtilen bir dosya için gelen tüm gelen / giden tüm verileri tam bir izlemeyi içerecektir.

\u003d\u003e Üstbilgi, 169 bayt (0xa9) 0000 gönder: 47 45 54 20 2F 20 48 54 54 50 2F 31 2E 31 0D 0A GET / HTTP / 1.1 .. 0010: 55 73 65 72 2 boyutlu 41 67 65 6E 74 3A 20 63 75 72 6C kullanıcı aracısı: CURL .. 0060: 2E 32 2E 33 2E 34 20 6C 69 62 69 64 6E 2F 31 2E, 2,3,4 LIBIDN / 1. 0070: 31 35 20 6C 69 62 73 73 68 32 2F 31 2E 32 2E 36 15 libssh2 / 1.2.6 0080: 0D 0A 48 6F 73 74 3A 20 77 77 77 2E 67 6F 6F 67 ..Host: www.goog 0090 : 6C 65 2E 63 6F 2E 69 6E 0D 0A 41 63 63 65 70 74 Le.co.xx..accept 00A0 3A 20 2A 2F 2A 0D 0A 0D 0A: * / * .... \u003d\u003d bilgileri http: 1.0 , Vücuttan sonra yakın varsayalım<= Recv header, 17 bytes (0x11) 0000: 48 54 54 50 2f 31 2e 30 20 32 30 30 20 4f 4b 0d HTTP/1.0 200 OK. 0010: 0a

Sözel ve izlemeyi artırmak için seçenekler, kıvrılma bir nedenden dolayı başarısız olduğunda, nedenini bilmiyoruz. Nedenini bilmiyoruz.

Dict Protokolünü kullanarak kelimenin tanımını ve çevirisini elde ediyoruz.

Bunun gibi mevcut sözlüklerin listesini görebilirsiniz:

Curl dict: //dict.org/show: db

İngilizce'den İngilizce'den Rusça'ya çeviriyi edinin, böylece şunları yapabilirsiniz:

CURL DICT: //DICT.org/d: Kız: FD-ENG-RUS 220 Pan.alephnull.com DICTD 1.12.1 / RF ON Linux 3,14-1-AMD64 <[E-posta Korumalı]\u003e 250 OK 150 1 Tanımlar Geri Alınan 151 "Kız" FD-ENG-RUS "İngilizce-Rusça Freedict Sözlük Ver. 0.3" Kız / GL / Kız. 250 OK 221 HYE

Dict hakkında daha fazla bilgi RFC22229 okunarak bulunabilir.

Dosyayı indirmek için bir proxy kullanın

Bazı işlemler için proxy kullanmak için curl belirleyebiliriz, bu -X seçeneği tarafından yapılır. Bir ev sahibi ve proxy portu sormamız gerekiyor.

$ Bukle -x proxysever.test.com:318 https://www.google.co.in/?gws_rd\u003dssl

Curl'da SMTP protokolünü kullanarak e-posta gönderme

curl ayrıca SMTP protokolüyle bir e-posta göndermek için de kullanılabilir. Posta sunucusunun kime ve IP adresini aşağıda gösterildiği gibi kimin, kimin ve IP adresini belirtmeniz gerekir.

$ curl --mail-dan [E-posta Korumalı] --mail-rcpt. [E-posta Korumalı] SMTP: //mailserver.com.

Komut girildiğinde, kullanıcı harf için kullanıcı verileri tarafından tanıtılmaya başlayacaktır. Bir mesaj yazmayı bitirdiğinizde, yazın. (nokta) son satır olarak ve mektup hemen gönderilecektir.

Konu: Test Bu bir test postasıdır.

Garantör, işlem sırasında katılımcılar arasında güvenilir bir aracıdır.



02/16/2006 Jeff Felling

CURL, Web'de yayınlanan verileri yönetmeye yardımcı olacaktır Bu makale, komut satırından web sayfalarını iletebileceğiniz ve alabileceğiniz ücretsiz bir kıvrılma aracı ile ilgilenir. Curl sayesinde çok fazla otomatikleştirmek kolaydır

CURL, Web'de yayınlanan verileri yönetmeye yardımcı olacak

Bu makalede, komut satırından Web sayfalarını iletebileceğiniz ve alabileceğiniz ücretsiz kıvır aracın açıklanmaktadır. Kıvrım sayesinde, bir web sayfasını öğrenmek gibi birçok bilgi koruma ve yönetim işlemini otomatikleştirmek, web'den güvenlik sistemi için bir düzeltme yüklemek gibidir.

Kıvrılma yükleme

CURL, birçok Unix dağılımının bir parçasıdır. Diğer işletim sistemleri için ikili dosyalar ve kaynak metinler vardır. Açık phps ile çalışan programcılar bile, web içeriğini doğrudan PHP senaryolarından korumak için CURL kullanabilir.

Güvenli yuva ile kıvrımlı çalışmak için katman Web düğümleri (SSL) OpenSSL paketini gerektirir. İki kıvrım versiyonu vardır: biri SSL, diğeri SSL olmadan. İlk önce tavsiye ederim çünkü SSL verileri güvenle korur.

SSL fonksiyonlarıyla kıvrılmayı kullanmadan önce, ağdan yüklemeniz ve OpenSSL paketini ayrı olarak yüklemelisiniz. Windows dosyaları için ikili OpenSSL, GNUWIN32 SourceForge Project sitesinden adrese indirilebilir. Bu sitenin Windows'ta taşınan birçok kullanışlı araçlara sahiptir.

OpenSSL paketini indirip yüklemelisiniz, ardından iki DLL dosyasını System32 dizinine kopyalamanız gerekir:

Kopyala "C: Program filesgnuwin32 binlibeay32.dll" % windir% System32 Kopyala "C: Program FilesGnuwin32 binlibssl32.dll" % windir% System32

Bundan sonra, curl yükleyebilirsiniz. SSL Uyumlu Curl Windows için ikili dosyalar bulunabilir http://curl.haxx.se/lateest.cgi?curl\u003dwin32-ssl-sspi . yeni sürümü, CURL 7.15.0, curl.exe dosyası ve belgeleri içeren win32-sl-sspi.zip yer almaktadır.

Kıvrılmayı yükledikten sonra, komuta girerek performansından emin olmalısınız.

Curl http://isc.sans.org/ infocon.txt

Bir kelime, ekranda renk (örneğin, yeşil) göründüğünü gösterirse, kıvrılma işleri anlamına gelir. Bu basit örnekte, curl, Infocon'un içeriğini SANS Enstitüsü'nün İnternet fırtınası merkezinden çıkarır. Yeşil, internetin normalde ve ciddi tehditlerin tespit edilmediği anlamına gelir. Yeşil yerine, sarı, turuncu veya kırmızı kelimeler ekranda görünür, daha sonra bu makaleyi erteleyin ve siteyi ziyaret edin. http://isc.sans.org. İnternette artan tehlikenin durumunu öğrenmek. Hata durumunda, kıvrımın kurulumunu doğrulamak gerekir.

Özünde, Curl web sayfasını alır ve ardından konsoldaki kaynak metin HTML sayfalarını verir. Ancak, yardımcı programın yetenekleri daha geniştir. CURL, gömülü bir hata kontrol fonksiyonuna sahiptir. Örneğin, takım

Curl http: // noserverhere

bir hata verir: (6) Host: Noserverhere; Ev sahibi bulunamadı. Hata kodları, Web sayfasının kullanılabilirliğini veya web sunucusu yanıtını kontrol etmek için komut dosyalarında kullanılabilir. Web sayfasının günlük kaldırılması için CURL kullanması Örneğin, günlük WEB düğüm istatistikleri özellikle, kaynak metin ile senaryoyu tamamlayabilir hata kodları için bakmak söyledi. Curl CURL hata kodunu görüntülerse: (7) Ana bilgisayara bağlanamadı, bir uyarı aktarabilir veya bir e-posta mesajı gönderebilirsiniz.

Şifreli Verileri Çıkarma

Curl'un en önemli avantajlarından biri SSL ile uyumludur. İstenen HTTPS sayfaları, ağ üzerinden şifreli biçimde iletilir ve ardından Curl, geri yüklenen metni görüntüler. Buna ek olarak, CURL kontrolleri sertifikaları - sertifikanın bitiş tarihi, sertifika ve kök sertifikasında güven seviyesinde konak adının ana bilgisayar adıyla uyumu - sertifika doğru değilse ve uyarır. -CACERT parametresi, belirli bir sertifika dosyasını belirlemenizi sağlar. Sertifikaları kontrol etmek -K parametresi kullanılarak iptal edilir. Alternatif bir yaklaşım, -Insecure parametresini kullanmaktır.

Sadece www için değil

Curl yetenekleri, İnternet üzerinden basit dosya aktarımından daha geniştir. Curl ile, hızlı bir şekilde FTP site dizininin bir listesini bulabilirsiniz:

CURL FTP: // MYFTPSITE

Site alt dizinlerini görmek için komutu girmelisiniz

CURL FTP: // MYFTPSITE / SUBDIR /

Bir dosyayı ağdan indirmek için, URL'deki dosya adını belirlemek için yeterlidir. Aşağıdaki örnekte, Readme.txt adlı dosya doğrudan komut satırından yüklenir ve ekranda görüntülenir:

Curl ftp: //ftp.microsoft.com/ DeskApps / Games / Readme.txt

FTP dosyalarını girecek şekilde FTP komutunu etkileşimli olarak kullanmaktan daha fazla bir komut dosyası hazırlamak genellikle daha kolaydır.

Varsayılan olarak, veriler doğrudan konsola görüntülenir, ancak -O -O ve -O parametreleri kullanan bir dosyaya yönlendirilebilirler. Bir sayfa almak ve bir diske kaydetmek için, -O parametresini belirtmelisiniz. Parametre -O, yerel dosyadaki alınan sayfayı kaydeder ve Curl uzak belgenin adını alır. Dosya adı URL'de belirtilmemişse, bu işlem başarısız olur. Eğer bir dosya adı olmadan bir Web düğümüne bir istek göndermek için CURL kullanması, ancak dosya olarak kaydedebilirsiniz gerekiyorsa, örneğin istemi komutuyla, dosya adı belirtebilirsiniz:

Kimlik doğrulama

CURL, temel, sindirimli ve entegre kimlik doğrulama yöntemlerini sağlar. Çoğu Sitenin form bazlı kimlik doğrulamasına sahip sayfalara erişimi, aşağıda gösterilecek olan Curl Gönderme işlevleri kullanılarak elde edilebilir. Bu, bu formları, özellikle kullanıcı adı ve şifreyi, Web sayfasında, bilgi girişinde görüntülenen bir uzaktan web sitesinde aktarabileceğiniz anlamına gelir. Kimlik bilgilerini göndermek için, -U parametresini kullanabilir veya bunları Geleneksel olarak FTP'de yapılan URL'ye yerleştirebilirsiniz, örneğin:

CURL FTP: // Kullanıcı Adı: [E-posta Korumalı]

FTP'den ödünç alınan kıvır alımların kullanılması, aşağıdaki örnekte olduğu gibi HTTP'ye aktarabilirsiniz:

Curl http: // Kullanıcı Adı: Şifre @ myhtmlsite / default.htm

CURL ayrıca proxy sunucusu üzerinden web sayfalarına erişim sağlar. Bu nedenle, temel, sindirim ve NTLM modlarında kimlik doğrulaması için bir proxy sunucusu kullanılacak şekilde kıvrılabilir.

Belgeleri oku

bir makalede, HTTP (-i) başlığında sadece bilgileri görüntülemek ve (detaylı modda tüm verileri görüntülemek sunucusuna (-t) hangi ve indirme dosyaları arasında ve tüm sayısız CURL birimlerini kapsayacak şekilde zordur - V) ve gizli çıkışı (ler). Adresinde yayınlanan kılavuzdaki kıvrımın işlevleriyle daha ayrıntılı bilgi edinmeyi öneririm. http://curl.haxx.se/docs. .

Kıvrılma kullanma örneği

Kıvrılın temellerini okuduktan sonra, belirtilen giriş verileri ile Web sitesinden veri çıkarmanın basit bir örneğini göz önünde bulundurun. Kolaylık ve CURL kullanım kolaylığı ve -D parametresi kullanılarak Web sitesine veri gönderme işlemi gösteren basit WHOIS aracı, inşa edecek. Bu örnekte, Curl, ARIN WHOIS web düğümüne bir IP adresi gönderir ve ardından bu sitedeki sonuçları alır. Whois, IP adresinin sahibi hakkında bilgi arıyor.

Çalışmaya başlamadan önce, web düğümünü keşfetmek önemlidir, çünkü her sitenin kaynak metninde özellikler var ve kıvrılma her zaman herhangi bir siteyle aynı çalışma değildir. Siteye ön ziyaretler, kıvrılma için gerekli bilgileri toplamanızı sağlar. Bu örnekte, web düğümünü ziyaret etmek için tarayıcıyı kullandım. http://www.arin.net/whois/ Ve sitenin ziyaretçilerin IP adresini belirttiği tek veri giriş alanına sahip olduğunu fark ettim. Web formunun bir parçası olan bu alanın ayrıntılarını elde etmek gerekir. Bu örnekte, FormFind.pl Perl komut dosyası kullanılır ( http://cool.haxx.se/cvs.cgi/curl/perl/contrib/ Formfind? Rev \u003d Baş & Content-Type \u003d Metin / vnd.ViewCVS-İşaretleme). FormFind.pl Script, form verilerini uygun çıkış sonuçlarına dönüştürür ve manuel veri aramasını HTML olarak basitleştirir. Tabii ki, bilgisayarda formfind başlatmak için Perl'i dağıtılmalıdır. İyi Win32 Perl Paketi Adresde ActiveTate ActivePerl'de sipariş verebilirsiniz. http://www.activestate.com. .

Bir örneği daha ayrıntılı olarak düşünün. İlk önce, bilgi isteyen formu içeren Web düğümüne bakın:

Curl -o whoisoutputfile http://www.arin.net/whois/

Bu komut http://www.arin.net WHOIS sayfasını çıkarır ve siteyi ziyaret ederken, tarayıcı tarafından yeniden üretilir HTML kaynak metin içeren WHOISOUTPUTFILE metin dosyasında kaydeder.

O zaman bu formları bulup vurgulamanız gerekir:

./formfind.pl.

FormFind, değişkenleri ve olası değerlerini sorunlar. Bu örnekte, çıktı sonuçları oldukça basittir (bkz. ekran 1.).

Queryinput adlı giriş formu verilerine dikkat etmelisiniz. Bu, kıvrılın istenen IP adresini göndermesi gereken bir metin alanıdır. Belirli bir IP adresi önemli değil - bu örnekte, Microsoft kullanıldı. -D parametresini kullanarak, istenen IP adresi Queryinput alanına gönderilir:

CURL -D "QueryInput \u003d 207.46.133.140" http://ws.arin.net/cgibin/ whois.pl

-D parametresiyle kıvrılma komutu, istenen IP adresini temsil eden bu durumda queryinput'taki verileri formda bulur. Bu durumda, hedef adres değişir; Form, verileri WHOIS.PL betiğini temsil eden yeni bir URL'ye iletmelidir. Yeni hedef adres, ekranda 1 formfind çıkışında görülebilir.

Bu örnekte, WHOIS yanıtının kaynak kodu da elde edilir, ancak HTML etiketi grubu tarafından gizlenir. Varsayılan olarak, kıvrılma durumu mesajı, belge boyutunu, yürütme yüzdesini ve gönderinin hızını gösterir. Çıktı biraz temizlenebilir ve IP adresinin ait olduğu kuruluşun adını filtreleyebilir. Kıvrım durumu, -S parametresi kullanılarak engellenebilir. Komut sadece orgname almak için Grep aracılığıyla yürütülmelidir:

CURL -S -D "QueryInput \u003d 207.46.133.140" http://ws.arin.net/cgibin/ whois.pl | Grep orgname.

Bu örnekte, çıktı sonuçları o orgname - Microsoft Corp.

@echo kapalı curl -s -s -d "queryinput \u003d% 1" http://ws.arin.net/cgibin/ whois.pl | Grep orgname.



21 etkinlik

Belki de zaten bukleler var

Belki bir şey indirmeniz gerekmez:

  • Windows 10 sürüm 1803 veya daha yüksek veya daha yüksek kullanıyorsanız, işletim sisteminiz zaten yapılandırılmış ve kullanıma hazır bir kıvırın kopyası ile birlikte verilir.
  • Eğer daha ezoterik ihtiyaçları varsa, (örneğin, Cygwin yapı, üçüncü taraf montaj, libcurl, header dosyaları, kaynak kodları, vb gerekir) CURL önyükleme sihirbazını kullanın. Beş soruyu cevapladıktan sonra, indirme bağlantılarının bir listesiyle sunulur.

    Bükümden Çıkarma ve Yapılandırma

    İndirilen paketinizde curl.exe bulun; Bu muhtemelen bin \\ altında.

    Bukleler için kalıcı bir ev olarak hizmet edecek bir sabit disk alanı seçin:

    • Kendi klasörünüzle bir kıvrılma yapmak istiyorsanız, C: \\ Program Dosyaları \\ CURL \\ veya C: \\ CURL \\.
    • özgür çalıştırılabilir dosyaları bir sürü var ve örneğin C PATH, kullanımı bu amaç için bir klasör için birçok ayrı klasörler eklemek istemiyorsanız: \\ Program Files \\ Tools \\ veya C: \\ Tools \\.

    Curl.exe dosyasını klasöre yerleştirin. Ve klasörü veya içeriğini asla hareket ettirmeyin.

    Sonra komut satırında herhangi bir yerde bir kıvrılma yapmak istiyorsunuz. Bunu yapmak için, bu gibi yola bir klasör ekleyin:

    1. Windows 10 Başlat menüsünü tıklayın. Çevreyi girmeye başlayın.
    2. Arama sonucunu göreceksiniz. Sistem değişkenlerini düzenle. Onu seç.
    3. "Sistem Özellikleri" penceresi açılır. düğmesine basın Ortam Değişkenleri altında.
    4. "Sistem Değişkenleri" bölümündeki "Yol" değişkenini seçin (alt alan). düğmesine basın Değişiklik.
    5. Düğmeye bas " Ekle " Ve yolu Curl.exe'nin bulunduğu klasöre yerleştirin.
    6. Tıklayın TAMAM MI, Eğer gerekliyse. Açık konsol pencerelerini kapatın ve yeni bir yol elde etmek için tekrar açın.

    Şimdi kıvrımın herhangi bir komut satırında girmeyi eğlenin. Eğlence zamanı!

    Kıvrımı komut satırından çalıştırmak için

    a) tıklayın sağ tık Fare "Bilgisayarım" simgesi

    b) "Özellikler" i seçin

    d) [Gelişmiş] sekmesine tıklayın - "Çevre değişkenleri" düğmesi

    e) "Sistem Değişken" bölümünde, "Yol" ve "Düzenle" seçeneğini seçin.

    f) Bir noktalı virgül ekleyin ve sonra Curl.exe'nizi yerleştirdiğiniz yerdeki yolu (örneğin, D: \\ Software \\ Curl)

Şimdi yazarak komut satırından çalıştırabilirsiniz:

Curl www.google.com.

Windows 10 sürüm 1803 (ve daha önce, içeriden bir tertibat 17063 ile) ile başlayarak artık curl'ı yüklemeyin. Windows, doğrudan her zamanki CMD'den temas edebileceğiniz C: \\ Windows \\ System32 \\ 'de kendi Curl.exe (ve tar.exe) içerir.

C: \\ Kullanıcılar \\ VonC\u003e C: \\ Windows \\ System32 \\ Curl.exe version CURL 7.55.1 (Windows) Libcurl / 7.55.1 WINSSL Yayın-Tarihi: Protokoller: DICT Dosyası ftp ftps. http https IMAP IMAPS POP3 POP3S SMTP SMTPS TELNET TFTP ÖZELLİKLERİ: \\ Kullanıcılar \\ VonC\u003e C: ASYNCHDNS IPv6 Largefileserver SSPI Kerberos SPNEGO NTLM SSL C \\ Windows \\ System32 \\ tar.exe version BSDTAR 3.3.2 - Libarchive 3.3.2 ZLIB / 1.2 .5.f-ipp.

Muhtemelen PowerShell V3 ve daha fazlasına dikkat çekmeye değer. geç sürümler Bazı büküm yetenekleri olan Invoke-WebRequest CMDlet'i içerir. Muhtemelen, yeni weberviceproxy ve invoke-restmetod cmdlets'ten bahsetmek gerekir.

Sizin için uygun olduklarından emin değilim, ama, pencereler olmasam da, bulduğumu söylemeliyim. nesne YaklaşımıBu, PS'yi kullanır, bu tür yardımcı programlarla curl, wget, vb. İle çalışmak çok daha kolaydır. Bakabilirler

Oluşturabilirsin son sürüm Bu eğiticiyi takiben 3 basit adımda curl, openssl, libssh2 ve zlib.

CURL, statik olarak inşa edilmiştir, bu nedenle gerekli dinamik yürütme süresini dağıtmanız gerekmez.

Önceden oluşturulan sürümü (x86 ve x64) indirebilirsiniz.

İndirme işlemini arıyordum Kıvırmak Ve herkes, dediler, dosyayı kopyalar System32'de curl.exe.Ancak düz bir bağlantı sağlamadılar. Yani burada tadını çıkarabilirsiniz curl.exe. Kolay klasör kutusu. basitçe

unzip onu ve sonra exe dosyasını aldığınız BIN klasörüne gidin

Tam olarak ne yaptığımı yazacağımı düşündüm (Windows 10, 64-bit versiyonu):

Seç çalıştırılabilir dosya. Kıvırmak.

Win64'ü seçin.

Evrensel'i seçin.

Herhangi birini seç.

curl versiyonu: 7.53.1 - SSL özellikli SSH dahildir. Sağlanan: Victor Shakats. Bu paket yürütülebilir bir kıvrılma türüdür. Bu bağlantıda önceden derlenmiş bir alacaksınız ikili dosya. CURL (veya, bazı durumlarda, bu bağlantının size yönlendirdiği sayfada verilen bilgileri kullanarak). Libcurl'ı ortak / dll kütüphanesi olarak yükleyemezsiniz. Dosya 7zip kullanılarak paketlenir. 7zip dosya arşivleme formatıdır.

İndir'i tıklayın.

İndirme klasörünüzde bir curl-7.53.1-win64-mingw.7z dosyasına sahip olmalısınız.

Eğer yoksa 7-zip ayarlayın.

Sağ tıklatın, 7-zip, burada kaldırın. Çıkarılan dosyayı z: \\ tools \\ gibi bir yere kopyalayıp yapıştırın.

Bin klasörüne bakarsanız, Curl.exe'u göreceksiniz. Üzerine çift tıklarsanız, pencere hızlı bir şekilde yanıp söner ve kaybolur. Çalıştırmak için, komut satırını kullanmanız gerekir. Bin klasörüne gidin ve bir istek yapmak için parametreleriniz ve ardından parametreleriniz girin. Çift tırnak kullanmalısın. Tek tırnak Windows'ta curl ile çalışmayacak.

Şimdi gitmek zorunda kalmayacak şekilde yolun kullanıcı değişkenine kıvrılma eklemeniz gerekir. İstediğiniz klasör Programı başlatmak için. "Bu PC" bölümüne gidin, "Bilgisayar", "Sistem Özellikleri", " Ekstra seçenekler Sistemler ", bir yönetici olarak giriş yapın (bir yönetici değilsiniz, doğru? GERÇEK?). Çarşamba değişkenleri, sistem değişkenleri, listeyi kontrol edin ve" Yol "ı seçin, ardından" Düzenle ", ardından yeni bir tane, örneğin

Z: \\ tools \\ curl-7.53.1-win64-mingw \\ bin

İsterseniz ters bir kroki ekleyebilirsiniz, önemli olduğunu sanmıyorum. Listenin üstünü sönene kadar hareket düğmesine yukarı, kolayca görebilirsiniz. Önceki ekran. Tamam'ı tıklatın, Tamam, Tamam, sonra komut istemini açın ve herhangi bir klasörden curl yazarak Curl'ı herhangi bir kullanıcı olarak yazarak çalıştırabilirsiniz. Çifte alıntılarınızı unutmayın.

Bu, almak istediğim cevap.

Bu yükleyici beni kolaylaştırdı http://www.confusedbyCode.com/curl/


Gönderen: Obaro OGBO
Yayın Tarihi: 29 Nisan 2015
Tercüme: A. Krivoshi
Tercüme Tarihi: Temmuz 2015

cURL, URL sözdizimini kullanarak dosyaları almak ve göndermek için bir çapraz platform komut satırı yardımcı programıdır. Adı, kıvrılma URL talep kütüphanesi için özyinelemeli bir kısaltma ve çok güçlü programDestekleyici çok sayıda ağ Protokolleri, HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, LDAPS, DICK, Telnet, Dosya, IMAP, POP3, SMTP ve RTSP dahil olmak üzere.

curl destekler büyük miktar faydalı özellikler, kullanıcı kimlik doğrulaması, proxy sunucuları, FTP, Http post.Çerezler, yenileme dosya aktarımı, SSL bağlantıları ve çok daha fazlası. Bu makalede, ilk önce bu programla karşı karşıya kalanlar için kıvrılma ana özelliklerine bakacağız veya bunun hakkında çok az şey bileceğiz.

Kurulum

İçin kıvrılma kurulumları Debian / Ubuntu sisteminde aşağıdaki komutu kullanın:

$ sudo apt-get install curl

Sözdizimi

curl, bir URL şeklinde bir argüman bekliyor ve bu adreste mevcut herhangi bir dosyayı indirmeye çalışacaktır.

$ Curl http://www.maketecheasier.com.

Varsayılan olarak, içerikler İletilen dosya. Komut isteminde görüntülenir. Çıkış dosyası ayarlandıysa, program iletilen veriler, transfer hızı, tahmini zaman ve harcanan zamanın görüntüsüyle ilerleme göstergesini gösterecektir. İndirilen dosyayı altına kaydetmek için belirtilen isim Kullanılan seçenek -O:

$ Curl -o mte-index.html http://www.maketecheasier.com

Dosyayı sunucudaki aynı ada göre kaydetmek için, -O seçeneği kullanılır:

$ curl -o ftp://ftp.kernel.org/pub/linux/kernel/v4.x/linux-4.0.tar.xz

Yetkilendirme gerektiği FTP sunucusundan bir dosya alma:

$ Curl -o ftp: // Kullanıcı adı: [E-posta Korumalı]/Pub/linux/kernel/v4.x/linux-4.0.tar.xz.

Birkaç URL'leri ayarlamak için veya parçalar URL, Bu parçaları içine koy diş telleri:

$ Curl -o http://www.maketecheasier.com/author/(Obaro,vana.vamsi)

Ayrıca, köşeli parantez kullanarak bir seri aralığı belirleyebilirsiniz:

$ curl -o ftp://ftp.numericals.com/file.txt $ curl -o ftp://ftp.letters.com/file.txt $ curl -o http://any.org/archive/vol/ Bölüm (a, b, c) .html

$ Curl -o "file_ # 1.txt" http: // (bir, iki) .site.com $ curl -o "çıkış_ # 1_ # 2" http: // (site, ana bilgisayar) .host.com

Sorabilirsin kullanıcı Ajanı Dize Sunucuları tanımlamak için, http bağlamak için Flag -a'yı kullanın:

$ Curl -a "Mozilla / 5.0 (Windows NT 6.3; RV: 36.0) Gecko / 20100101 Firefox / 36.0" -O MTE-index.html http://www.makeaseasier.com

Veri göndermek için hTTP kullanma Post Tasarlanmış Seçenek -D:

$ Curl -d "Kullanıcı Adı \u003d Obaro" -D "Şifre \u003d Şifre" http://makeaseasier.com

$ CURL -D "Kullanıcı Adı \u003d Obaro" -D "Şifre \u003d Şifre" -C MTE-Çerezler http://makeaseasier.com

Bu kaydedilen çerezleri kullanmak için -B seçenek tasarlanmıştır:

$ CURL -B MTE-Çerezler -D "HC_CEDCE \u003d Bu bir yorum ve Gönder \u003d Doğru" http://www.makeaseasier.com/monitor-hard-disk-helth-linux/

Dosyayı siteye indirmek için -T seçeneğini kullanın. HTTP sunucuları için, Put komutu yerine kullanılır:

$ Curl -t "file1.jpg" http://www.uploadmania.com/Upload

SSL / TLS bağlantısını etkinleştirmek için --ssl-reqd bayrağı kullanılır. Birden fazla dosya için SSL / TL'leri bir komutla da etkinleştirebilirsiniz:

$ Curl --ssl-reqd -t "file.jpg" ftp: // Kullanıcı Adı: [E-posta Korumalı]/ Yükle.

-U seçeneğini kullanarak, yetkilendirme için veri ayarlayabilirsiniz:

$ Curl -u kullanıcı adı: şifre --ssl-reqd -t "file.jpg" ftp://ftp.uploadmania.com/upload

cURL çok basit, güvenilirdir ve fonksiyonel program. Çok sayıda seçenek var ve birçok protokolü destekliyor, yeteneklerinden sadece küçük bir payı düşündük. Mükemmel bir şekilde incelemek istiyorsanız, Adam sayfasını okuyun.

Web geliştiricisinin ömrü zorluklarla gölgede bulunur. Bu zorlukların kaynağı bilinmemesi özellikle tatsızdır. Bunun bir istek gönderme ya da cevabı veya cevabını veya üçüncü taraf bir kütüphaneyle, harici API'nin buggy olup olmadığı bir sorun mu? Hayatımızı basitleştirebilen çeşitli saldırılar var. İşte şahsen paha biçilemez düşündüğüm bazı komut satırı araçları.

kıvırmak
cURL, WGET'e benzer çeşitli protokollerde bir veri aktarım programıdır. Ana fark, varsayılan olarak WGET, dosyaya kaydedilir ve curl komut satırına görüntüler. Böylece web sitesinin içeriğini izleyebilirsiniz. Örneğin, mevcut harici IP'inizi hızlı bir şekilde nasıl elde edersiniz:

$ Curl ifconfig.me 93.96.141.93
Parametreler -BEN. (Başlıkları göster) ve -BEN. (Sadece başlıkları göster) kıvırmak mükemmel araç HTTP yanıtlarını hata ayıklamak ve sunucunun size özel olarak gönderdiği gerçeğini analiz etmek için:

$ CURL -I Site HTTP / 1.1 200 OK Sunucu: Nginx Tarih: THU, 18 Ağu 2011 14:15:36 GMT İçerik türü: Metin / HTML; Charset \u003d UTF-8 Bağlantısı: Keep-Canlive Keep-Ulive: TimeOut \u003d 25
Parametre -L. Ayrıca faydalı olarak, kıvrımın yönlendirmeleri otomatik olarak takip etmesine neden olur. Curl, HTTP Proxy üzerinden HTTP kimlik doğrulamasını, çerezleri, tünellerini destekler, manuel ayarlar Başlıklarda ve çok daha fazlası.

Kiz
- Yük testi için araç. Ayrıca, uygun bir seçeneği var. -G.bu çok benzer curl -il.Ancak, ek olarak, HTTP istek başlıklarını da gösterirsiniz. İşte Google.com'dan bir örnek (bazı başlıklar kısa için kaldırılır):

$ Siege -g www.google.com get / http / 1.1 Ana Bilgisayar: www.google.com Kullanıcı-Ajan: Joedog / 1.00 (x11; i; Siege 2.70) Bağlantı: Kapat HTTP / 1.1 302 Bulunan Yer: http: // www.google.co.uk/ İçerik türü: Metin / HTML; CHARSET \u003d UTF-8 SERVER: GWS İçerik Uzunluğu: 221 Bağlantı: Kapat / Http / 1.1 Ana Bilgisayar: www.google.co.uk Kullanıcı-Ajanı: Joedog / 1.00 (x11; I; Siege 2.70) Bağlantı: Kapat HTTP / 1.1 200 OK İÇERİK-TİPİ: Metin / HTML; Charset \u003d ISO-8859-1 X-XSS koruması: 1; Mod \u003d Blok bağlantısı: Kapat
Fakat hangi kuşatma için gerçekten çok uygundur, bu yüzden yük testi içindir. Apachevsky Benchmark gibi abSiteye çeşitli paralel istek gönderebilir ve trafikle nasıl başa çıktığını görebilir. Aşağıdaki örnekte, 30 saniye boyunca 20 istek kullanarak Google'ı nasıl test ettiğimizi gösterilir, daha sonra sonuç elde edilir:

$ Siege-C20 www.google.co.uk -b -t30s ... Sunucu Siege Kaldırma ... Tamamlandı. İşlemler: 1400 Hits Durulabilirlik:% 100.00 Geçerli Süre: 29.22 sn Veri Aktarımı: 13.32 MB Tepki Süresi: 0.41 sn TRANSPORT HIZI: 47.91 TRANS / SEC SOCIPUT: 0.46 MB / SEC SONSUM: 19.53 Başarılı işlemler: 1400 Başarısız işlem: 0 En uzun işlem: 4.08 En Kısa İşlem: 0.08
Kuşatmanın en kullanışlı işlevlerinden biri, yalnızca bir adresle değil, aynı zamanda dosyadan bir URL listesiyle de çalışabilmesidir. Bu, yük testi için harika, çünkü simüle edebilirsiniz gerçek trafik Sitede, sadece aynı URL'ye tekrar tekrar basmak için değil. Örneğin, Apache günlüğünüzden adresleri kullanarak sunucuyu yüklemek için kuşatma nasıl kullanılır:

$ cut -d "" -f7 /var/log/apache2/access.log\u003e urls.txt $ Siege -C -B -f urls.txt
Nöbet
Ciddi trafik analizi için, binlerce ayar, filtre ve konfigürasyona sahip teller var. Ayrıca bir komut satırı sürümü var tshark.. Ama için basit görevler Wireshark işlevi aşırı düşünüyorum. Güçlü silahlara ihtiyacım olmadığım sürece kullanıyorum. İle yapmanızı sağlar ağ paketleri Aynı şey gREP. Dosyalarla yapar.

Web trafiği için neredeyse her zaman parametreyi kullanmak istiyorsunuz -W.Dize biçimlendirmesini ve parametresini kaydetmek için -Q.Uygun olmayan paketler hakkında gereksiz bilgileri gizler. İşte tüm paketleri GET veya POST komutuyla kesen bir komut örneğidir:

NGREP -Q -W BYLINE "^ (GET | POST). *"
Ekleyebilirsin ek filtre Paketler için, örneğin, belirli bir ev sahibi, IP adresi veya bağlantı noktasında. İşte tüm gelenler için filtre ve giden trafik Google.com'da, "arama" kelimesini içeren bağlantı noktası 80.

Ngrep -q -w byline "Ara" Host www.google.com ve port 80