[Pentest Q&A cùng Tsu] #3: XSS – Upload Style

Q1: XSS là gì…

Cái này nhiều tài liệu nói lắm rồi, tây có, ta có, nên mình sẽ không nói chi tiết hay học thuật nữa (google for more information), cứ hiểu đại khái XSS (Cross-Site Scripting) là các đoạn mã javascript được chèn zô website một cách bất hợp pháp, trick người dùng thực thi nó trên máy thông qua web browser. Một khi đã control được mã javascript thì có thể điều khiển browser người dùng theo ý mình.

Q2: Ok… Vậy upload Style?

Thực ra XSS có nhiều dạng tấn công lắm, nhưng mà mấy cái này trên mạng nhiều rồi, mình chỉ nói về hướng tấn công thông qua function upload, chứ bài này không bao gồm tất cả các cách tấn công XSS hiện nay

Q3: Show me please!

Ok, giả sử chúng ta có một trang web đồ họa, cho phép upload các vectơ lên để trao đổi giữa các thành viên, những vectơ này được lưu dưới đuôi dạng .svg (Scalable Vector Graphics), như vậy nếu bạn upload 1 file với đuôi .svg lên, điều đó hoàn toàn bình thường và hợp lệ, Right?

ok so right…. let see….

Để giải thích điều này thì… không biết nên gọi nó là bug hay là feature, tuy nhiên cứ xss được thì đã là vul rồi đúng không 🙂

Và nên nhớ trong đầu là, cho phép upload svg == cho phép upload html XD

Q4: Bạn cho mình xin payload được không?

Fine, việc đầu tiên là define ra một file svg hợp lệ (để không bị filter định dạng hốt), tiếp theo là input payload vào thôi, bạn có thể làm theo mẫu sau:

https://pastebin.com/wv3yF1ni

Q5: XSS upload chỉ có đuôi .html với .svg có thể chạy được javascript thôi hả bạn?

Dĩ nhiên là không, mình nghĩ là còn vô số định dạng đang chờ được khai phá ngoài kia, ở đây xin giới thiệu thêm một định dạng khác “.swf

Q6: swf là gì zợ, nghe lạ dữ….


“.swf là định dạng tệp Adobe Flash được sử dụng cho đa phương tiện, đồ hoạ vector và ActionScript. Xuất phát từ phần mềm FutureWave, sau đó chuyển sang Macromedia, và sau đó thuộc quyền kiểm soát của Adobe, tệp SWF có thể chứa hình động hoặc các applet có mức độ tương tác và chức năng khác nhau.” – theo Wikipedia.

“Nôm na là định dạng đuôi của file flash.” – theo Tsu.

Vậy file .swf có XSS được không? dĩ nhiên là được nên mình mới viết bài đề cập chớ, mình cũng biết bạn muốn mình show payload luôn phải hem, :hacknao: rồi

Q7: Ok..fine…

Bước 1: Tạo 1 file ActionScript2 (AS2) với hàm getURL, hàm này sẽ tự động kích hoạt mã javascript khi file được chạy trên WebBrowser đã cài Adobe Flash Player:

class XSS
{
        static var app: XSS;
        function XSS()
        {
                var xss = "javascript:alert(\"SWF-based XSS: \"+document.domain)";
                getURL(xss, "_self");
        }
        static function main(mc)
        {
                app=new XSS();
        }
}

Tạm lưu file này dưới tên xss.as

Bước 2: Cài gói mtasc trên linux thông qua lệnh

 apt-get install mtasc

Bước 3: Compile file vừa code để ra file swf

 mtasc -swf test1.swf -main -header 0:0:0 xss.as


Như vậy ta đã có 1 file “xss” .swf để đi nghịch quanh quanh :3

Bước 4: Đi nghịch quanh quanh như trên, chống chỉ định nam giới đang có thai và cho con bú ❤

Q8: Còn hàng để share nữa không?

Câu trả lời xin được bõ ngõ…

Advertisements

One thought on “[Pentest Q&A cùng Tsu] #3: XSS – Upload Style

  1. Pingback: [Pentest Q&A cùng Tsu] #0: Introduction | Tsu BlogS ٩(^‿^)۶

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