[Case Study 1] IT-SEC The Dawning

0
the dawning

The first…real case….
Xin chào, xin chào… chào mừng anh em đến với điểm bắt đầu của hành trình của nghiệp ‘nắc ker’ của anh 6 vờ lốc. Nick name của mình là HideAndSeek a.k.a 2N6, thôi thì gọi là anh Sáu cho thân thiện nhé.
Mình là 1 newbie trong nghiệp hacking/security, mục tiêu của mình là trở thành 1 thành viên trong cái thế giới nhỏ bé nhưng đầy tai tiếng lẫn danh tiếng này. Và, mình chọn cách vào nghề bằng một chiếc mũ trắng.
Hôm nay, mình sẽ kể cho mọi người nghe về hành trình đi tìm con bug siêu to siêu khổng lồ đầu tiên của cuộc đời. Đánh dấu sự kiện trọng đại, anh 6 vờ lốc chính thức thoát khỏi mind set của 1 script kiddie.

Everything is beginning from… crush
Vào một ngày đẹp giời gần cuối năm, sau khi hoàn thành xong công việc, mình lọ mọ lên mạng, tìm 1 cái gì đấy làm quà giáng sinh, mình chọn từ khóa abcxyz, chị google thì khá bao đồng nên lấy luôn location của mình để add vô kết quả tìm kiếm… tèn ten, một cửa hàng bán abcxyz bự chà bá lửa, với một trang bán hàng có đính kèm cái khóa. Chà, có vẻ uy tín đấy, mình click vô liền, bước vào trang chủ, everything seems to be ok. But not at all, mình ngó thấy cái thanh search…. Damn, có gì đó so fun ở đây, test thử, việc quá tin tưởng vào cái khóa thế là mình bị hố, test bypass các kiểu, failed lòi… Toang. Giận quá, thử phát cuối: <img src=”d**********”>, đậu phộng dầm đường, nó mọc ngay cái ảnh vỡ. Giận tím bầmmmmmmmmm. Ok, thế là có cái bug đầu tiên, cơ mà cũng chưa có gì thú vị lắm, vọc thử xem có gì vui vui hơn không, thế là mò vào thử các trang chi tiết về sản phẩm. Lướt lướt 1 hồi, mình để ý thấy cái url có gì đó không đúng lắm, ừ thì làm nháy, vừa nháy đầu mà nó… ối giời ơi, 1 cái gì đó rất là…hmmm… Phêêêêêêêêêêêêêêêêê.
Cái url mình thấy nó trông thế này:
https://www.banabcxyz.us/gift.html?category=1
Sau khi làm 1 nháy thì nó trông như này:

What the heck is that?
Why is it looked like this?

Tại sao??? Nhìn vô thấy liền nó show cho mình nguyên cái lỗi sql chà bá lửa, không những thế nó còn show cho mình nguyên cả câu query và chỉ cho mình lỗi sai (so lucky). Thế là, tấp vô lềềềềềềềềềềềềề.
Try hard time….
Nổi khổ của mình bắt đầu, vì mình mới vọc thử, cũng chả dám đụng nhà người ta, nên cũng né mấy câu nhạy cảm như kiểu delete, alter, drop… gì gì đó. Bắt đầu kiếm cách hữu dụng hơn, móc DB coi thử xem sao chẳng hạn. Mà khổ đã gà thì chớ, còn gặp case rối nữa, mình cũng k biết xài tools, nên thôi chơi tay.
Đầu tiên mình đọc câu truy vấn, cũng có 1 thời gian đi làm web nên đọc vô cũng biết sơ sơ, kiểu truyền vào tham số xong kiểm tra nó còn hay hết và lấy thông tin detail trả ngược lại cho server. Dạng như này. SELECT * FROM abcxyz_talbe WHERE abcxyz_name=(input) and abcxyz_isselling = true and theownerlikethis = true;
Đấy đại loại là thế, bypass thì dễ đấy, mà lấy được thông tin đối với mình nó hơi kiểu quá tầm…

What the heck am i faced with???

Getting the gift…
Mình bắt đầu đi từ con số 0 tròn trĩnh (hình như hơi méo méo, thôi chả sao đâu :v ), vì cho đến lúc này mình chưa biết làm thế nào để lấy được thông tin từ DB cả. Googling, mình thấy 1 cụm từ khá hay ho, bind sql injection. À há, đọc thử, khá ấn tượng và match với case này, apply vô luôn, méo chạy… Hóa ra là apply sai cách, mình đọc thêm vài case nữa, thấy có cách bruteforce DB bằng hàm substr() của mysql. Uầy ngon, cụ thể mình điền như sau:
https://www.banabcxyz.us/gift.html?category=1) and ((SELECT COUNT(table_name) FROM information_schema.tables WHERE table_name like ‘%us%’ and substr(table_name,1,1)=”a”) =0) –+
Giải thích sơ qua 1 chút về câu lệnh này,

  • Phần dấu “)” để kết thúc câu truy vấn làm câu truy vấn hợp lệ với input của category
  • Câu select lồng ở đây có 2 nhiệm vụ:
  • Thứ nhất: là kiểm tra những bảng có tên giống với từ khóa: %us% (2 dấu %% nghĩa là match với bất kì đoạn chuỗi nào).
  • Thứ 2 kiểm tra chữ cái ở vị trí được cắt ra có giống với cái kí tự được so không? Ở đây là kí tự thứ nhất, và so với chữ “a”. Nếu như kết quả trả về là 1 list danh sách sản phẩm, điều này có nghĩa câu truy vấn là đúng cái SELECT phía sau = 0, suy ra chả có cái bảng nào như này cả. Ngược lại… Ố ô, trúng số cận độc đắc cmnr. Ban đầu mình mò bằng tay, mà kiểu, thánh thần thiên địa ơi mò xong được cái này chắc tới sáng mới ra 1 cái tên bảng. Mình thì lại không biết xài tools, biết mỗi cái Burp Suit. Mình nhớ nó có 1 cái tính năng là brute force, cũng được, mình xài thử ai dè cũng hiệu quả ra phết. Để mình hướng dẫn sơ qua nhé.
    • Đầu tiên là mở Burp Suit lên, cho nó làm proxy server.
    • Sau đó truy cập bằng request mẫu bằng browser(nhớ tắt intercept mode nhé).
    • Tìm request cần brute force và send nó đến Intruder

Ta có được một cái như này:

Xóa dấu $ ở những chỗ không cần thiết, dấu này biểu thị những biến có thể thay đổi cho việc brute force.
Trong case này mình sẽ thay đổi ở 2 vị trí có high-light màu đỏ. Chi tiết các bạn tìm hiểu thêm hoặc nếu cần thì mình sẽ tìm hiểu và hướng dẫn trong 1 bài khác nhé ^^ .
À quên nữa vì mình dùng 2 biến để brute force nên sẽ chuyển sang mode cluster boom nha.
Và khi chạy payload thì nhớ hiệu chỉnh cho phù hợp nhé.
End game….
Sau khi chạy xong thì mình cũng lấy được 1 số tên bảng, và phải làm đi làm lại nhiều lần. Dù sao cũng là 1 bước quý báu cho 1 newbie như mình. Có thể nhiều bạn đọc sẽ thấy… So f**king noob ☹( .
Bên cạnh đó, cửa hàng đó cũng khá lớn thế mà lại có những lỗi sơ đẳng như này thì quả là hơi đáng lo ngại. Thậm chí khi mình gửi bug này cho quản trị viên cũng không nhận được phản hồi hay dấu hiệu của việc fix lỗi. Khá buồn… Dù sao thì sau case này mình cũng gained được khá nhiều thứ mới mẻ, hay ho. Chắc sắp tới mình phải học thêm vài tools hoặc code chẳng hạn, chứ giờ ngu quá cũng khổ :’( …
OK, kết thúc case này, chúc mọi người 1 ngày tốt lạnh. Have fun!!!
— H1d34nds33k —

Xem thêm:

5/5 (3 Reviews)