Report web security vulnerabilities (INTEGER OVERFLOW) #2

 


Target:[congtyx].com

endpoint: [congtyx].com/danhgia

Vâng lại là mình đây ở đây mình sẽ viết wu về một bug khá hài hước do bên dev hơi sơ xuất:

ở đây mình thấy một endpoint giúp cho người ta đánh giá nếu được người khác đánh giá bạn từ 1-5 tương ứng với số tiền bạn nhận được là 1-5$ 

data gửi lên simple nó sẽ là 

data=[id_user,rate=(1-5)]

Từ đầu mình thử post lên rate = 9999999999999 -999999999999 để xem có nhận được thêm tiền không :V tuy nhiên bên dev họ đã giới hạn nếu lớn hơn 5 thì sẽ sẽ ép rate = 5 .Điều cực kỳ hay ở đây là dev chỉ giới hạn lớn hơn 5 mà không giới hạn nhỏ hơn 0


Vì thế sau khi post lên rate = -999999999999 số tiền trên tài khoản mình là -2147483648 :v mình thắc mắc tại sao nó lại là số này mà không phải là số -999999999999 :V vâng yep đó chính là giới hạn int của sql:

INT(size): -2147483648 đến 2147483647 thông thường


mình có demo SQL ở máy mình: 
UPDATE `linkcmt` SET `bonus` = '-999999999999999999999' WHERE `linkcmt`.`id` = 5
và nhận được


so good :3

Vậy nếu bạn tự hỏi nếu âm tiền thì có sài được gì đâu :> nhưng điều quan trọng ở đây mình có thể control được con số đó cách thứ là mình sẽ post lên một request nữa với rate = -1 

Ở đây giới hạn ví dụ cho bạn nếu có giới hạn là [-2147483648 đến 2147483647] thì khi 

-2147483648 - 1 thì nó sẽ quay về 2147483647 

Bạn có thể xem ở đây để hiểu kỹ hơn https://www.youtube.com/watch?v=YYOSOJvshoo

Và là done sau khi gửi request rate = -1 :3 ngay trong ví mình đã có 2147483647$ :3 hãy đi rút ra và làm ràu thôi :>>

Sau bug này cách bạn dev chú ý về giới hạn hơn nhé đặc biệt với các endpoint nhạy cảm tưởng chừng nó vô hại.

Nói vậy thôi mình đi report web cho người ta và được người ta bonus cho xxx$ 

._. hẹn gặp lại các bạn dịp sau nhé.





Nhận xét

  1. Bạn có thể cho tui xin vài lời khuyên về cách học lập trình đc không bạn bạn, tui cũng đang học mà vẫn chưa biết đc start point như thế nào để có thể làm được như mn. Giống như kiểu bạn có thể nói về quá trình bạn bắt đầu học như thế nào, học xong rồi làm gì,... được không. Tui cũng lên nhiều bài viết nhưng nhìn chung đều nói học lập trình xong rồi mới hương làm này làm nọ :((

    Trả lờiXóa

Đăng nhận xét