[SVATTT 2015] CSecretboxeS

Mình sẽ cố gắng nói bài này 1 cách ngắn gọn nhất, bỏ qua công đoạn try hard nên không thắc mắc vì sao mình lại suy nghĩ đến hướng như vậy nhé.


Vì đây là lần đầu tiên mình tiếp xúc công nghệ này nên chắc writeup sẽ có vài sai sót, nếu bạn nào tìm ra comment giúp để mình sửa, thanks

Challenge: http://119.15.167.215/web300_9041ba9a1d30457514618bfd281e34c2/

Nhìn tổng quan trang này có 2 tab chính, một tab để lưu lại “Secret”, và một tab để report link sida.

Thấy report + regex link chính chủ thì chắc chắn là chúng ta phải làm trò gì đó bên tab Secret và lấy cái link đó gửi cho con “bot” rồi.

Dựa vào tên bài, thì mình cũng hướng tới phương án là lỗi CSS, qua thăm bác gu gồ một chút thì ta sẽ được nhiều kết quả rất liên quan: RPO

Nói vắn tắt về lỗi này:

file css nếu được đặt theo Relative URL, sẽ load ngay tại thư mục hiện tại.

VD:

<link rel=”stylesheethref=”bootstrap.min.css“>

file css sẽ có đường dẫn là :

http://119.15.167.215/web300_9041ba9a1d30457514618bfd281e34c2/bootstrap.min.css

mọi việc chưa dừng lại ở đây, nếu như load url như này

http://119.15.167.215/web300_9041ba9a1d30457514618bfd281e34c2/index.php/

thì css vẫn sẽ được load, nhưng sẽ fail vì không có đường dẫn, tuy nhiên trình duyệt thường rất dễ dãi, nó sẽ load đến index.php( phần đã biết) rồi không quan tâm phía sau là gì, và css từ html/css sẽ được đối xử thành html/text.

Lúc này ta đang ở Quirk Mode (mình đặt nó là Dễ dãi mode):

ở mode này nếu trong source phát hiện css, nó sẽ load css đó lên.

Ok trở lại bài này, mình thì rất thích những thứ dễ dãi nên thử phát:


Dễ dãi mode confirmed

Sau khi biết được, chúng ta lưu các đoạn css vào Secret để em gái dễ dãi của chúng ta load nó lên:

màu đỏ chứng tỏ…….
Tới đây thì chúng ta đã khai thác được lỗi RPO rồi, sau đó làm gì? nếu tinh tế 1 chút, ở đây bạn sẽ nhận ra rằng lỗi CSS chỉ xảy ra ở phần history, nghĩa là dù bạn có gây được lỗi và gửi link qua bot, cũng không có gì xảy ra đơn giản vì history của bạn khác history của bot!
Như vậy, chúng ta phải tìm cách để lưu css vào history của bot. How to?
Ở đây có 2 cách:
1/ Force con bot sửa cookie thành cookie của mình, như vậy con bot sẽ hiện history kèm mã css inject
2/ Force con bot tự tạo History

Cách 1:

Thường nhiều người nghĩ đến cách 1, nhưng nếu nhìn nhận lại, nếu force con Bot sửa cookie, thì mục đích cuối cùng là làm gì? không lấy được gì cả, chưa kể sửa được cookie Bot là 1 vấn đề lớn.

Cách 2: Rất đơn giản, gửi cho bot link tạo secret để ẻm tự click:

http://119.15.167.215/web300_9041ba9a1d30457514618bfd281e34c2/index.php/index.php?title={} *{color:red;}&secret=b&action=save

ở bài này XSS đã bị chặn, đồng nghĩa bạn phải steal được ở con Bot bằng CSS. No XSS -> No Cookie. Do đó ta nghĩ đến hướng steal secret0 của bot.

Ở đây mình tạo một đoạn css để blind.
Ví dụ con bot có id secret0 là abcdefghi, thì mình sẽ chạy a-f0-9. Nếu chữ đầu là a thì sẽ gửi về host của mình, nếu không phải thì không gửi gì cả -> biết được chữ đầu, blind tiếp chữ thứ 2 cho đến hết.

Thử thách cuối này mình sẽ không nói chi tiết mà để lại cho các bạn tự trải nghiệm vì nó rất lý thú và rất đáng để try hard 😀

#####UPDATE###############

final payload:

http://pastebin.com/ty5DqhN2

như vậy secret0 của chúng ta sẽ là 7xxxxxxxxxxxxxxxxxxx1

Ref:
blog.portswigger.net/2015/02/prssi.html
diythemes.com/thesis/css-specificity-thesis/
w3schools.com/cssref/css_selectors.asp

Sau khi có được id secret0 của bot. Ta sẽ có được flag


P/s: BTC cho cái pastebin mình không hiểu để làm gì, cả web100 và 300 đều không xài, hoang mang thật chứ 😦

Advertisements

4 thoughts on “[SVATTT 2015] CSecretboxeS

  1. Pingback: WhiteHat Contest 11 – Ultimate Design Tool | BabyPhD CTF Team

  2. Pingback: SVATTT 2017 (vòng loại): Sad Book writeup. – l4w.io

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s