CyberSecurity - Azərbaycanca
  • Giriş
  • Əməliyyat sistemləri
    • Linux
      • Videolar
      • Giriş
      • Mətnlər üzərində əməliyyatlar
      • İstifadəçilər və Qruplar
      • Səlahiyyət və ya İcazə
      • Proseslər
      • Paketlər
      • Qovluq quruluşu
      • Zamanlanmış tapşırıqlar
      • Servislər
      • Kernel
      • Şəbəkə əmrləri
      • Bash skript dili
      • Vim editoru
    • Windows
      • Fundamentallar
      • İstifadəçilər və Qruplar
      • PowerShell
        • Operatorlar
        • Cmdlet siyahısı
      • PowerShell Skriptləri
      • CMD
  • Penetration Test
    • Subdomain/Domain Takeover
    • IDOR
    • SQL Injection
    • Cross Site Scripting
  • Terminologiya
  • Youtube
Powered by GitBook
On this page
  1. Əməliyyat sistemləri
  2. Linux

Mətnlər üzərində əməliyyatlar

Datanı istədiyimiz formaya salmaq

sed - (Stream EDitor) data axınları üzərində dəyişiklik edə biləcəyiniz bir əmr. Məsələn faylda olan 'windows' sözlərini 'linux' sözü ilə əvəz etmək istəyiriksə:

kali@kali:~$ sed -i 's/windows/linux/g' fayl_adi

Yalnız fayllarda deyil, keçən məqalələrdə olduğu kimi başqa bir əmrin verdiyi outputda da dəyişikliklər edə bilərik. Bunun üçün yazdığımız əmrdən sonra piping işlətməliyik.

cut - Datanı sütunlara görə bölmək üçün əmr. Deyək ki əlinizdə aşağıdakı kimi bir data var:

12.08.2020 16:55 192.168.0.103 /about.php
12.08.2020 17:20 192.168.0.102 /login.php
12.08.2020 17:35 192.168.0.108 /register.php
12.08.2020 18:22 192.168.0.110 /home.php

Əgər sizə burada olan yalnız IP adreslərin siyahısı lazımdırsa, belə olan halda aşağıdakı əmr bizim köməyimizə çata bilər:

kali@kali:~$ cat data | cut -d" " -f 3
192.168.0.103
192.168.0.102
192.168.0.108
192.168.0.110

Yuxarıda biz cat əmri köməkliyi ilə datamızı terminala çıxarıb sonra əmrləri bir birinə qoşmaqla (piping) ikinci əmri yerinə yetirdik. Əmrdə olan -d - delimiter (ayırıcı), -f - field (hissə) mənası daşıyır. Bununla da biz kodda gələn datadakı hər sətri boşluqlara əsasən (-d" ") hissələrə ayırmasını və alınmış 4 hissədən yalnız 3-cüsünü (-f 3) istədiyimizi bildirdik.

awk - bu mətnlər üzərində redaktə etmək üçün daha çox təkmilləşmiş bir əmrdir. Hətta belə demək olarsa, özünə məxsus proqramlaşdırma dili var. Aşağıda standart bir awk əmrini görə bilərsiniz.

kali@kali:~$ awk '/axtarilan_ifade/ { ifade_uzerinde_emeliyyat; }' fayl_adi

Yuxarıdakı sintaksisə əsasən belə bir misal çəkək. Tutaq ki, əlimizdə aşağıdakı kimi adı test olan bir fayl var:

12.08.2020 16:55 192.168.0.103 /about.php
12.08.2020 17:20 192.168.0.102 /login.php
12.08.2020 17:35 192.168.0.108 /register.php
12.08.2020 18:22 192.168.0.110 /home.php
12.08.2020 17:35 192.168.0.106 /register.php
12.08.2020 16:55 192.168.0.103 /about.php
12.08.2020 17:20 192.168.0.102 /login.php
12.08.2020 17:35 192.168.0.110 /register.php
12.08.2020 18:22 192.168.0.110 /home.php

Əgər biz bu faylda /register endpointinə daxil olmuş ip addresslərini görmək istəyiriksə, belə olan halda aşağıdakı kimi əmr yazmaq işimizə yarayacaqdır:

kali@kali:~$ awk '/register/ {print $3;}' test
192.168.0.108
192.168.0.106
192.168.0.110

1-ci sətrdə də göründüyü kimi awk əmrini istifadə edərək əvvəlcə test faylının içərisində register ifadəsi olan sətirləri seçməsini istədik - /register/ . Buna görə də 3 sətir seçdi. Sonra isə biz yalnız IP adreslərin seçilməsi üçün seçilən cümlələrin hər birinin 3-cü hissəsini print etməsini istədik - {print $3;}. Niyə məhz 3? AWK əmri default (standart) olaraq seçdiyi hissələri boşluqlara əsasən hissələrə ayırır. Eynən aşağıda olduğu kimi:

   | 1 |    |2|       |3|          |4|
12.08.2020 17:35 192.168.0.106 /register.php

İndi isə biz IP adreslərlə yanaşı tarixi də görmək istəyiriksə onda deməli bizə 3-cü hissə ilə yanaşı həm də 1-ci hissə də lazımdır. İlk yazdığımız awk əmrini aşağıdakı kimi dəyişməklə məqsədimizə nail ola bilərik:

kali@kali:~$ awk '/register/ {print $1,$3;}' test
12.08.2020 192.168.0.108
12.08.2020 192.168.0.106
12.08.2020 192.168.0.110
PreviousGirişNextİstifadəçilər və Qruplar

Last updated 1 month ago