# PICOCTF WEB
## Easy
### Insp3ct0r

Đề bài hints là dùng inspector nên mình sử dụng dev tool trên các browser bằng cách ấn F12, trong đó thì mình tìm thấy các part của flag trong các file: HTML, CSS và JS.
```linux=
part1: picoCTF{tru3_d3
part2: t3ct1ve_0r_ju5t
part3: _lucky?832b0699}
```
```FLAG: picoCTF{tru3_d3t3ct1ve_0r_ju5t_lucky?832b0699}```
### Scavenger Hunt

Mình tiếp tục inspect trang web bằng F12, thì mình phát hiện ra 2 part và 1 hints về robots.txt
```linux=
part1: picoCTF{t
part2: h4ts_4_l0
```
vì có hints về file robots.txt nên mình chèn nó vào URL

```linux=
part3: t_0f_pl4c
```
dựa vào hint về apache sever, sau khi search thì mình đoán nó sẽ dùng ```.htaccess```là 1 tệp cấu hình của apache.

```linux
part4: 3s_2_lO0k
```
hint tiếp theo là về Mac và Store, sau khi research thì mình phát hiện có 1 file lưu thông tin về các attribute trên MAC là ```.DS_Store```

thế là mình đã tìm đủ các part của flag, bây giờ chỉ việc ghép nó lại thôi.
```FLAG: picoCTF{th4ts_4_l0t_0f_pl4c3s_2_lO0k_7a46d25d}```
### Webdecode

Sau khi bấm qua các phần của trang web thì mình tìm thấy 1 trang bảo mình nên inspect ở đây.

Mình inspect web này và mình thấy 1 đoạn chữ khá giống mã code của base64 nên mình thử decode nó ra.
```latex=
cGljb0NURnt3ZWJfc3VjYzNzc2Z1bGx5X2QzYzBkZWRfMjgzZTYyZmV9
```
sau khi dùng cyberchef dịch nó bằng base64 thì mình có flag.
```FLAG: picoCTF{web_succ3ssfully_d3c0ded_283e62fe}```
### Cookie Monster Secret Recipe

* Hints: Cookies

Đây là một trang login nên mình thử đăng nhập thông tin ngẫu nhiên vào.

Tới đây thì có hints là kiểm tra cookies của trang web nên mình dùng burpsuite để đọc cookie có trang web cho tiện.

sau khi select cookie thì mình đã có flag lun rồi nhé.
```FLAG: picoCTF{c00k1e_m0nster_l0ves_c00kies_AC8FCD75}```
### Unminify


Vì trang web đã bảo là đã gửi flag rồi nên mình nghĩ nó có thể trong HTTP Respone packet.

đúng như dự đoán mình đã tìm thấy flag trong file HTTP Respone.
```FLAG: picoCTF{pr3tty_c0d3_dbe259ce}```
### IntroToBurp

Bài này mình sẽ dụng burpsuite nhé.

Ở trang web này thì là 1 trang đăng kí nên mình nhập ngẫu nhiên thì sau đó được chuyển sang trang xác nhận otp.

Mình cũng thử nhập như vậy nhưng lại bỏ đi phần ```otp``` trong request thì mình đã có flag.
Mình nghĩ là do sever sẽ mặc định sẽ cho phép truy cập kể cả khi không có otp.

```FLAG: picoCTF{#0TP_Bypvss_SuCc3$S_e1eb16ed}```
### Inspect HTML

Bài này chỉ cần inspect ra là thấy flag rồi nhé.

```FLAG: picoCTF{1n5p3t0r_0f_h7ml_8113f7e2}```
### Bookmarklet
Đề bài hướng chúng ta đến việc dùng đoạn mã cho sẵn để lấy flag. Sau khi chạy thì chúng ta thu được flag.

```FLAG: picoCTF{p@g3_turn3r_1d1ba7e0}```
### Cookies


Theo mình nghĩ thì trang web đang yêu cầu mình đoán xem cookie nào chứa thông tin về flag vì khi mình nhập snickerdoodle thì ```Cookie: name=0```. Do đó mình tăng thử lên 1 thì phát hiện trang web có thay đổi.

Do đó mình tiếp tục tăng cho đến khi name=18 thì nhận được flag.
```FLAG: picoCTF{3v3ry1_l0v3s_c00k135_a1f5bdb7}```
### where are the robots


Sau khi đọc dòng đầu tiên thì mình liên tưởng ngay đến file robots.txt. Nên mình đã gán vào url của trang web thì mình thấy có 1 trang html bị disalowed khiến cho khi mình truy cập trang web không thấy được.
```htmlmixed=
Disallow: /1bb4c.html
```
Mình thử gán nó vào url thì nhận được flag.

```FLAG: picoCTF{ca1cu1at1ng_Mach1n3s_1bb4c}```
### logon


Mờ đầu với 1 trang login, sau khi bấm đăng nhập thì nhận được là không có flag do đó mình thử kiểm tra cookie thì thấy có thể thay đổi quyền admin từ ```false``` thành ```true``` và nhận được flag.


Sau khi sửa thì refresh trang web và nhận flag.

``` FLAG: picoCTF{th3_c0nsp1r4cy_l1v3s_d1c24fef}```
### Includes

Trong bài này thì flag giấu trong 2 file js và css sau khi inspect nó bằng dev tool F12.
```FLAG:picoCTF{1nclu51v17y_1of2_f7w_2of2_df589022}```
### Local Authority
Bài cho 1 trang login web sau khi đăng nhập thử và inspect thì mình thấy có 1 file tên là ```secure.js``` chứa thông tin của tài khoản admin.

sau khi đăng nhập thì mình nhận được flag.
```FLAG:picoCTF{j5_15_7r4n5p4r3n7_b0c2c9cb}```
### dont-use-client-side

Sau khi mình inspect thì thấy flag được chia ra thành nhiều phần

```FLAG: picoCTF{no_clients_plz_7723ce}```
### head-dump


Sau khi được dẫn tới trang picoCTF news thì mình thử bấm vào các hastag thì chỉ có ```#API Documentation``` có thể chuyển hướng được

dựa vào hint là head-dump nên mình excute file trong phần headdump và tải file về.
Trong file headdump mình search tìm flag bằng Ctrl+F.

```FLAG: picoCTF{Pat!3nt_15_Th3_K3y_46022a05}```.
## Medium
### picobrowser


Chúng ta không thể nhận flag vì không sử dụng pico browser. Mình chú ý đến dòng:
```linux=
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
```
dòng này cho ta biết ta đang dùng trình duyệt của chrome, nên mình suy nghĩ có thể thay nó thành ```picobrowser``` trong phần request bằng burpsuite.


Mình thành công thu được flag.
```FLAG: picoCTF{p1c0_s3cr3t_ag3nt_51414fa7}```
Sau khi research thì mình biết dev tool của trình duyệt có tính năng ```Network conditions``` có thể trực tiếp thay đổi ```user agent``` của browser.


Chú ý đây là dùng default browser. Bây giờ mình sẽ thay nó thành picobrowser và refresh lại.

Mình cũng nhận được flag tương tự.
## Sqlilite

Theo như gợi ý đây có thể là dạng payload bằng cách sử dụng sqli. Nên mình đã thử nhập username= admin'-- để website bỏ qua phần kiểm tra mật khẩu nếu username đúng

Như mình đoán! Mình đã log in thành công và nhận được thông báo đã có flag nhưng lại không thấy đâu nên mình thử inspect để xem source code.

Mình đã tìm thấy flag được giấu trong source code.
```FLAG: picoCTF{L00k5_l1k3_y0u_solv3d_it_ec8a64c7}```
### More SQLi

Dựa theo tên challenge mình đoán đây có thể là một bài sử dụng SQL injection.

ta có 1 trang login mình thử chèn thử ``` ' or 1=1--``` để đăng nhập.

theo truy vấn thì có vẻ là họ sẽ xác minh password trước nên mình sẽ đổi câu lệnh chèn xuống password nhé.

Mình đã đăng nhập thành công, theo hình thì mình có 3 cột của 1 table. Trước tiên mình sẽ kiểm tra thử xem db này là db nào.

Theo kết quả thì đây là một db sqlite. Tiếp theo mình sẽ thử kiểm tra thông tin của các bảng bằng sqlite_master ( bảng chứa tất cả thông tin về các bảng khác ).


theo đó thì flag nằm trong bảng more_table.
``` FLAG: picoCTF{G3tting_5QL_1nJ3c7I0N_l1k3_y0u_sh0ulD_c8b7cc2a}```
### Secrets


Sau khi truy cập trang web và inspect thử bằng dev tool thì mình nhận thấy trong file html có đường dẫn lạ tên secret.

Có vẻ như mình đã đi đúng hướng, trong file secret cũng có 1 đường dẫn như vậy nên mình truy cập vào nó.

Cứ tưởng là 1 trang login bình thường nhưng khi inspect thì mình lại thấy 1 đường dẫn có tên là superhidden. Sau khi truy cập thì mình nhận được flag được ẩn đi.

```Flag: picoCTF{succ3ss_@h3n1c@10n_790d2615}```
### Login


Trong source code thì mình tìm được username và password của trang web, nhìn sơ thì nó khá giống đỉnh dạng của base64 nên mình thử decode thử và thu được flag.

``` FLAG:picoCTF{53rv3r_53rv3r_53rv3r_53rv3r_53rv3r}```