0x41414141
Last updated
Was this helpful?
Last updated
Was this helpful?
**GRAPHQL 2.0
**HACKME
des của chall như sau, nó nói xạo á chứ mình test thì limit 5 char lận
tức là bài này ta có thể thực hiện command linux thoải mái với tối đa 5 character
bài này chôm idea từ 1 chall của anh da cam năm 2017
mình giải thích ý tưởng như sau
sử dụng >
để chuyển hướng output nhằm tạo file đồng thời lợi dụng \
nhằm ám chỉ câu lệnh đó chưa kết thúc để có thể ghép nhiều phần của câu lệnh lại
với đoạn command trên thì ta có thể tạo được lệnh ls -t >g
sort file trong thư mục theo thời gian và cho vào file g
nếu ta tạo được lệnh đó thì liệu ta có thể tạo được 1 bash để rce thoải mái không?
câu trả lời là không, vì ls nó sort file mặc định theo thứ tự mã ascii nên ta sẽ không thể tái tạo được 1 số lệnh theo ý muốn
đoạn trên như là proof of work để mình thực hiện các lệnh tiếp theo,
dưới đây là script để solve bài này
sau khi chạy file, lên trình duyệt run sh g
mặc dù nó trả về 500 error nhưng ta vẫn thấy có request tới tức là lệnh thực thi thành công.
cách 2:
mình thử nl /* thì thấy server error nhưng khi thực hiện ls lại thì thấy xuất hiện một file mới là core, chắc cái này tác giả config sai nên bị bug chỗ này
đọc file core thì search thấy flag, tức là lệnh nl /*
đã đọc toàn bộ hệ thống và cho vào file core :v
cách 3
idea y chang cách 1 nhưng simple hơn đó là
ghi 1 file có tên là cat sau đó sử dụng file đó để đọc tệp :v
vì trong thư mục hiện tại chỉ có mỗi file tên là cat, nên khi * thì ta có thể call được lệnh cat ra
ez game
**MAZE
vào challange thì ta thấy một login page như sau
sau khi thử sqli thì mình không thấy vấn đề gì, tiếp theo thử robots.txt thì thấy 1 dir mới là /sup3rsecr37@p1
đây là một gui của graphql, buồn thay mình chưa sử dụng graphql lần nào, search một lúc thì mình cứ ném payload đại vô
mình thấy 1 cái đặc biệt là allTraders, nhìn qua các payload thì mình cũng biết sơ sơ truy vấn nó như thế nào
may thay gui này hỗ trợ cho mình như thế này
làm tiếp như thế 1 lúc ta sẽ được truy vấn như sau
ta có password và title, thử login vào trang lúc nãy
ngon, login thành công, bước tiếp theo mình tiếp tục fuzz
web có thêm 1 endpoint là trade, nhìn qua có vẻ giống sqli nên mình theo hướng sqli
mlem mlem, kiểu này thấy mùi server được code bằng python rồi
mà python thì thường đi với sqlite, nên mình cứ nhảy thẳng vào sqlite luôn
2 cột, oke chưa :v
chuẩn sqlite lun!
có table admin, select ra thôi ez game
ta có một endpoint là admin nên cứ thử login thôi
lul cứ tưởng done r ai ngờ :(
cần trôn u mình xem xét thì thấy.
có đoạn code sau trong script.js
nhìn có vẻ nghi ngờ ở đây :v , mình tiếp tục nhìn vào cookie thì thấy
vậy chắc chắn lấy name từ cookie rồi render ra như thế
liên quan đến việc render thì nghĩ ngay tới SSTI, mà đã xác định ứng dụng sử dụng python nên thẳng tiến thôi.
để làm SSTI thì first step luôn luôn là detect để chắc chắn nó có phải là SSTI không
SSTI thì mình khá quen nên mình sẽ làm nhanh đoạn này
ở đây mình sử dụng os._wrap_close
payload mình dùng
đến đây ta đọc flag là end game.