This shows you the differences between two versions of the page.
|
uso:teme:tema-3 [2022/12/22 17:13] adelin_costin.popa [Informații generale] |
uso:teme:tema-3 [2025/11/28 12:46] (current) alexandru.raduta06 [Testarea temei. Finalizarea temei. Mașină virtuală.] Removed old task2 note and added new note for big files |
||
|---|---|---|---|
| Line 28: | Line 28: | ||
| <note important> | <note important> | ||
| - | Deadline: **15 Ianuarie, ora 23:55**\\ | + | Deadline: **19 Decembrie, ora 23:59**\\ |
| - | Punctaj: **1.0 puncte** din nota finală\\ | + | |
| </note> | </note> | ||
| Line 37: | Line 36: | ||
| </note> | </note> | ||
| <note> | <note> | ||
| - | **Actualizări checker: <color red>versiunea 1.1.2</color>** | + | **Actualizări checker: <color red>versiunea 1.0.0</color>** |
| * s-a lansat versiunea iniţială | * s-a lansat versiunea iniţială | ||
| - | * update major la primele 3 taskuri | ||
| - | * update minor task 5 | ||
| </note> | </note> | ||
| Line 46: | Line 43: | ||
| - | * Pe parcusul acestei teme vom folosi cunoștințe generale legate de scripting și securitate (mai precis spargerea parolelor, decriptare vs. decodificare, hashing), dar și comenzi uzuale de lucru în linia de comandă, așa că verificați laboratoarele aferente înainte să vă apucați de această temă. | + | * Pe parcusul acestei teme vom folosi cunoștințe generale legate de scripting, expresii regulate și securitate, dar și comenzi uzuale de lucru în linia de comandă, așa că verificați laboratoarele aferente înainte să vă apucați de această temă. |
| ===== Testarea temei. Finalizarea temei. Mașină virtuală. ===== | ===== Testarea temei. Finalizarea temei. Mașină virtuală. ===== | ||
| - | <note>La task-ul 2, pentru a primi toate punctele, trebuie salvate parolele //decodificate// (nu decriptate) în wordlist_decoded.txt (atenție la trailing whitespaces).</note> | + | <note> |
| + | În rezolvarea temei va trebui să instalați un fișier cu parole. Să aveți grijă să îl ștergeți înainte să trimiteți tema.</note> | ||
| <note warning>Este interzisă publicarea pe forum a comenzilor sau pozelor care fac parte din rezolvarea parțială sau integrală a | <note warning>Este interzisă publicarea pe forum a comenzilor sau pozelor care fac parte din rezolvarea parțială sau integrală a | ||
| Line 95: | Line 92: | ||
| * Odată găsită parola, dezarhivați ultima barieră între voi și mesajul ascuns. | * Odată găsită parola, dezarhivați ultima barieră între voi și mesajul ascuns. | ||
| - | ==== Task 04 (15p) ==== | + | ==== Task 04 (10p) ==== |
| | | ||
| <note> | <note> | ||
| Line 103: | Line 100: | ||
| * În directorul curent se află ''64based.txt''. Acest fișier a fost codificat de 20 de ori cu ''base64''. | * În directorul curent se află ''64based.txt''. Acest fișier a fost codificat de 20 de ori cu ''base64''. | ||
| - | * Creați un script numit ''unbase.sh'' care să decodifice conținutul acestuia și să scrie noul conținut în ''output/64unbased.txt''. | + | * Creați un script numit ''unbase.sh'' care să decodifice conținutul acestuia și să scrie noul conținut în ''64unbased.txt''. |
| - | ==== Task 05 (25p) ==== | + | ==== Task 05 (20p) ==== |
| <note> | <note> | ||
| Line 121: | Line 118: | ||
| * Folosirea diacriticelor în cadrul scriptului nu este necesară și nici recomandată. | * Folosirea diacriticelor în cadrul scriptului nu este necesară și nici recomandată. | ||
| - | ==== Task 06 (20p) ==== | + | ==== Task 06 (30p) ==== |
| <note> | <note> | ||
| Pentru acest task se va lucra exclusiv în directorul /home/student/tema3-task6 | Pentru acest task se va lucra exclusiv în directorul /home/student/tema3-task6 | ||
| Înainte de a vă apuca, intrați in directorul acesta. | Înainte de a vă apuca, intrați in directorul acesta. | ||
| - | </note> | ||
| - | * În directorul curent se află un fișier [[https://en.wikipedia.org/wiki/JSON|JSON]], numit ''inventory.json''. | + | Pentru cerințele a și b veți reține output-ul în log_fixed.txt. |
| - | * Acest fișier conține doi jucători de Minecraft și inventarele acestora. | + | Celelalte linii le veți afișa exact așa cum apar în fișierul log.txt. |
| - | * [10p] 1. Creați un script numit ''find_common.sh'' care găsește toate itemele comune (bazat strict pe nume) ale celor doi jucători și le pune în ''outputs/common_items.txt''. | + | Toate scrierile către fișiere vor fi făcute direct din scripturi, ci nu la momentul execuției. |
| - | * [10p] 2. Creați un script numit ''find_best.sh'' care găsește toate itemele (de la ambii jucători) ce au câmp de durabilitate, le ordonează descrescător după aceasta și le pune în ''outputs/best_items.txt''. | + | Exemplu: `./fix_requests.sh > log_fixed.txt` nu va fi acceptat ca soluție. |
| + | </note> | ||
| + | |||
| + | <note important> | ||
| + | De fiecare dată când veți rula `sudo uso start 3` se va genera un nou log.txt. | ||
| + | </note> | ||
| - | * Pentru referință se vor folosi fișierele din directorul ''ref''. | + | * [5p] a. Creați un script numit ''fix_requests.sh'' care afișează în ''log_fixed.txt'' conținutul din ''log.txt'', dar modificând liniie care au ca tip de cerere HEAD, astfel încât să fie afișate invers. |
| - | * Pentru prelucrarea datelor din ''.json'' se recomandă folosirea utilitarului [[https://stedolan.github.io/jq/manual/|jq]]. | + | * **Exemplu: <color green>)46x ;46niW ;0.01 TN swodniW( 17.2964.0.79/emorhC :tnegA-resU 1.1/PTTH tuoba/ DAEH</color>** |
| + | * [5p] b. Modificați scriptul ''fix_requests.sh'' astfel încat toate liniile care au ca tip de cerere OPTIONS să fie afișate cu majuscule. | ||
| + | * **Exemplu: <color green>OPTIONS /SOME_OTHER_PATH HTTP/1.1 USER-AGENT: CHROME/97.0.4692.71 (WINDOWS NT 6.1; WOW64)</color>** | ||
| + | * [10p] c. Creați un script numit ''get_users.sh''. În cadrul acestuia, cu ajutorul cererilor de tip POST (din fișierul ''log.txt'') făcute către ''/login'', rețineți în fișierul ''users_db.txt'' toți utilizatorii și parola lor respectivă (ca hash de tipul sha256), sortați alfabetic după utilizatori. | ||
| + | * **Exemplu: <color green>adelin:1bc9414dc185b89669dba035340c4684a6733bbf1cdac568dadcfd2eef731054</color>** | ||
| + | * [10p] d. Creați un script numit ''get_browsers.sh'' în care identificați ce browsere folosesc utilizatorii de iPhone (din fișierul ''log.txt'') și le rețineți în fișierul ''iphone_users_browsers.txt'' alături de numărul de apariții, sortate de la cel mai folosit browser pana la cel mai puțin folosit. | ||
| + | * **Exemplu: <color green>Safari - 120</color>** | ||