Bài đăng

 LeetCode, It's coding time LeetCode day1: Long common prefix. Level easy Python solution class Solution :     def longestCommonPrefix ( self , strs : List[ str ]) -> str :         if not str :             return ""         strs.sort()         first_list = strs[ 0 ]         last_list = strs[- 1 ]         long_common_prefix = ""         for i in range ( len (first_list)):             if first_list[i] == last_list[i]:                 long_common_prefix+=first_list[i]             else :                 return long_common_prefix         return long_common_prefix Javascript solution /**  * @param {string[]} strs  * @return {string}  */ var longestCommonPrefix = function ( strs ) {     if (! strs || strs . length == 0 ){         return ""     }     strs . sort ()     first_list = strs [ 0 ]     last_list = strs [ strs . length - 1 ]     long_common_prefix = ""     for ( let i = 0 ; i < first_list . length ; i ++){      
Hình ảnh
*Some Key Abbreviations in Cyber Security* *CIA* - Confidentiality, Integrity, Availability *IDS* - Intrusion Detection System *IPS* - Intrusion Prevention System *WAF* - Web Application Firewall *PII* - Personal Identifiable Information *DoS* - Denial of Service *DDoS* - Distributed Denial of Service *DNS* - Domain Name System *ZTA* - Zero Trust Architecture *NAT* - Network Address Translation *CTF* - Capture the Flag *ACL* - Access Control List *CDN* - Content Delivery Network *CVE* - Common Vulnerabilities and Exposures *RAT* - Remote Access Trojan *APT* - Advanced Persistent Threat *ATP* - Advanced Threat Protection *SSO* - Single Sign-on *URL* - Uniform Resource Locator *TLS* - Transport Layer Security *ARP* - Address Resolution Protocol *RDP* - Remote Desktop Protocol *FTP* - File Transfer Protocol *SFTP* - Secure File Transfer Protocol *HTTP* - Hypertext Transfer Protocol *HTTPS* - Hypertext Transfer Protocol Secure *LDAP* - Lightweight Directory Access Protocol *MFA* - Multi-f
Hình ảnh
KnightCTF và những cú lừa. Hế lô ae, hôm nay bọn mình vừa chơi KnightCTF. Do lâu r mình không chơi cho team nên là nay ghi writeup sẵn tiện mở bát cho năm mới luôn. Bọn mình hạng 10th, không cao lắm. Chủ yếu là do mình không clear được web :( Mình sẽ cố gắng hơn vào đợt TetCTF sắp tới. Web1: Levi Ackerman Bài này thì khá dễ, chỉ cần vô robots.txt là lụm được Flag: KCTF{1m_d01n6_17_b3c4u53_1_h4v3_70} Web2: Kitty Bài này chỉ là Sqli đơn giản thôi ^-^ Sau khi login thành công thì mình được vô trang như này Check source thì thấy như này  Thế chỉ cần tạo 1 post bắt đầu bằng cat flag là xong Flag:KCTF{Fram3S_n3vE9_L1e_4_toGEtH3R} Web3: Gain access 1 Ukm, bài này chỉ là sqli cơ bản thôi, không khó lắm :v https://webhook.site/#!/view/0ce-43d4-34366e
Hình ảnh
 0xl4ughCTF và mình đã quá chủ quan. Mình cứ nghĩ giải này nó kiểu dễ dễ nhưng nó bruh thật đấy :V Member team mình nghỉ Tết hết roài nên chơi một mình thoai :< Web1:  Micro Bài này mình được cho source, xem qua cấu trúc thư mục trước đã index.php <?php error_reporting ( 0 ); function Check_Admin ( $input ) {     $input = iconv ( 'UTF-8' , 'US-ASCII//TRANSLIT' , $input );   // Just to Normalize the string to UTF-8     if ( preg_match ( "/admin/i" , $input ))     {         return true ;     }     else     {         return false ;     } } function send_to_api ( $data ) {     $api_url = 'http://127.0.0.1:5000/login' ;     $options = [         'http' => [             'method' => 'POST' ,             'header' => 'Content-Type: application/x-www-form-urlencoded' ,             'content' => $data ,         ],     ];     var_dump ( $options );     $context = stream_context_create ( $op
Hình ảnh
 DICECTF AND WHO KNOWS Hế lô mn, dạo này mình lười quá không muốn ghi blog xíu nào :v Dạo này mình cũng hơi đần nữa, sú vãi WEB1:web/dicedicegoose Bài này mình không đi sâu vào, chủ yếu là đọc codejs thôi :v Muốn win thì player và goose sẽ có Ox và Oy trùng nhau  Và score phải bằng 9 nữa  Player cứ trừ Oy và goose trừ Ox là được Challenge ở client side, mình điều dễ dàng điều khiển được mấy cái tọa độ đấy. Cứ history.push([<tọa_do_player,toa_do_goose>]) trên console thế là đc :v Lười làm lại mấy bài ko code quá ;v Web2:funnylogin Okay lần này thì bài này mình có source :v Tự build local cho dễ làm :v Xem sơ qua cấu trúc thư mục nhé :V Lướt qua một chút, tại endpoint /api/login, flag chỉ đưa cho chúng ta nếu, tồn tại user[id] và isAdmin[user] phải trả về True. Dễ dàng có thể nhận ra nó user và pass ko sanitize nên có thể trigger được sqli :c Hmm, user tận 100,000 người lận, challenge ko yêu cầu brute nên mình sẽ phải tìm cách khác Chú ý vào đây, isAdmin là 1 object -> giá trị u
Hình ảnh
 TetCTF và hành trình bú bẩn không thành Hello ae, tình hình là phải cập nhật cloud sớm thôi chứ không ổn rồi :v Mình writeup bài web1, bài này tốn kha khá thời gian của mình T_T. ----------------------------------------------------------------------- Web1: Hello from API GW Truy cập link tác giả cung cấp thôi Lúc đầu mình nhận định là ssti, php hoặc là python. Nhưng thực ra không phải, nó là nodejs, được đặt trong eval. Thế thì dễ. https://huk5xbypcc.execute-api.ap-southeast-2.amazonaws.com/dev/vulnerable?vulnerable=[require(%27child_process%27).execSync(%27ls -la%27).toString()] Tuy nhiên, mình đã không tìm được file flag kèm với tên category là cloud nên mình đã chuyển sang exploit cloud, có vẻ là Amazon web services(AWS). Thực sự mình không biết mô tê về cái này nên hơi mất tg research. Dựa vào thông tin trong env mình đã xác định được 2 acc là AWS_ và ENV_ Mình bị rơi vào stuck chỗ này chỉ đụng mỗi cái AWS_ :V nhưng mà thk ENV_ thì okela nha Sài tool này để enum. Chú ý vào phần s
 UPLOAD WINDOWS Hôm nay mình research các cách upload file trên windows @@. Như đã biết windows khác với linux, ví dụ như trong linux bạn có thể upload file phar và thực thi nó bình thường nhưng trong trong windows nếu chưa được cấu hình thì file sẽ ko được thực thi, nó sẽ hiển thị dưới dạng text vô hại. Được test trên apache server Ok +) php +) .htaccess +) png.php +) PhP Not Ok +) php.png +) .phar, .phtml, .php3,... +) .php[khoang trang]

Java Edition - learn by heart not learn step by step :D

Hình ảnh
 Hế lô ae, lại là mình đây. Đây là bài đầu tiên trong tháng, cũng là bài đầu tiên trong năm 2024 nên là hoan hỉ hoan hỉ. Thú thật mình ngoo java vc nên lười học nhưng ai biết đc số phận đưa đây chúng ta đến với nhau?? Command injection - the lover - the first code Chua lam: cmd3 JAVa1 Đầu tiên review code trước nhỉ @@ Dòng 24: @GetMapping("/codeinject") sẽ nhận phương thức GET tại endpoint /codeinject.  Dòng 27: filepath là 1 untrust data chúng ta có thể điều khiển được. Giá trị filepath sẽ được cho vô mảng cmdList bằng cách nối với chuỗi ls -la. Dòng 28-30: gọi đến class ProcessBuilder và truyền mảng chứa untrust data vô. class Process sẽ xử lý tiến trình mà ProcessBuild.start() tạo ra -> gadget. Bug1: file inclusion  Hãy test thử nhé Bug2: Command injection -> RCE Mình có thể điều khiển được command nên ai biết gì đâu :D Xong rồi :))) Bài viết này sẽ là 1 trong những chuỗi hoạt động nghiên cứu lỗi trên java của mình,  MAKE SPYCIO.KON-TEAM GREAT AGAIN -----------------

Regex và cuộc đời bất hạnh của nó

 Hế hế, lâu rồi không ghi blog đơn giản vì chán quá + lười nữa.  Nhận thấy mình có vấn đề với thk cha Regex nên tiện hôm nay note lại để hiểu rõ hơn. ----------------------------------------------------------------------------------------------------------- Khái niệm: Regex là các mẫu(pattern) thay vì các chuỗi dùng để tìm kiếm/ thay thế/.... Nói nôm na là nó đc dùng xử lý chuỗi một cách thuận tiện hơn. Đây là cái sẽ làm nền tảng cho blind regex injection attack  Cú pháp Regex: Dùng để thể hiện vị trí  ^  và $ . ^The: match với chữ The nhưng nó phải đứng đầu tiên end$: match với từ end nhưng nó phải đứng cuối ^The end$: match với từ The end end: match với bất kì từ end nào có trong câu Dùng để thể hiện số lượng  *   +   ?   {} . Lấy ví dụ với từ abc abc*: match với từ ab và không có hoặc có nhiều chữ c đằng sau:  -VD: abccc,ab,abc,... abc+: match với ab và có một hoặc nhiều kí tự c đằng sau -VD: abc,abccc,... abc?: match với ab và có hoặc không có 1 chữ c đằng sau. -VD: ab,abc abc{2}:

KMA TTV

Mấy nay tui lười viết wu quá, nhưng mà đại loại là khum clear đc web(6/10 chall) còn làm khá ngoo nữa nên viết sẽ bị chê cười. Đăng tạm 3 prog solve script. T định clear hết prog nhưng lười quá, mà thấy sú nữa, t biết code đ đâu :V Prog1: import json from pwn import * r = remote ( '103.162.14.116' , 14002 ) try :     while ( True ) :         print ( r . recvline ())         r . recvuntil ( b "arr =" )         s = r . recvline (). decode ()         print ( s )         u = max ( json . loads ( s ))         r . sendline ( bytes ( str ( u ), "utf-8" )) except :     print ( r . recvline ()) r . interactive () # print(max( [35108217398665520798322916107816, 778190297752053830054479172279829, 433248835926907151366557863609100, 530511307645369300518075525954125, 319041740549641573432614280680049, 54889066684876542565651338313320, 555523546383080759680027939296310, 743500905362792400800205265076928, 568493246032607782686888251069529, 73281316704799390114350