NahancomCTF
Last updated
Was this helpful?
Last updated
Was this helpful?
*AgentTester V1 & 2
challange có source code nên ta sẽ mở ra xem một lượt và xác định điều cần với mình.
đầu tiên thứ đập vào mắt mình là
=> ssti với render template string
để access được route này thì mình phải có id=1 tức là admin
thứ 2 là flag, trong file run.sh ta có
flag nằm trong biến môi trường => RCE để đọc flag
ở v1 thì đọc flag rất đơn giản
nhìn vào câu query thì ta có thể dễ dàng sqli được ở đây, django đi với sqlite
lấy ra acc admin thì ta có thể login với userid=1, qua debug để được ssti và đọc flag.
v2: sự khác biệt giữa v1 và v2 là
User.password == bcrypt.hashpw(password.encode(), current_salt).decode(),
password được encrypt nên dừ có lấy đc pass thì cũng không thể decrypt để lấy lại plaintext ban đầu-> bỏ
quay lại với /req
ta thấy subprocess.Popen gọi browser.js lên
đây là một header chromeless nên có thể bắt con bot thực thi js ở đây
mà bot thì thường là admin nên chúng ta không cần biết password của admin như thế nào.
host 1 file html như sau. lúc bot request tới đồng thời mình cũng bắt nó thực hiện 1 post request tới /debug, thứ được render ở debug
ở trường h1 sẽ chứa output cmd của mình, sau đó sẽ chuyển hướng tới trang chờ sẵn bao gồm flag
cách giải cho v2 cũng có thể áp dụng cho v1.