본문 바로가기

Web Hacking/Dreamhack

[Dreamhack] baby-sqlite write up

 

나도 숙련된 웹해커가 되고 싶어

 

 

문제 서버 접속 시 기본적인 로그인 화면이 나온다. 로그인 로직 처리 부분만 코드를 보게 되면

 

uid, upw만 폼에서는 입력이 가능하지만 level도 인자로 받고 있다. 키워드를 보면 대부분 필터링을 하고 있다. 우선 싱글쿼터도 필터링 되고 있어서 탈출은 불가능하다.

 

 

level은 integer로 정의 되고 있어서 싱글쿼터로 감싸져 있지 않아 탈출할 필요가 없다. 이 부분을 공략해야 된다.

 

대충 페이로드를 짜보면

 

level=1/**/union/**/select('admin')

 

 

근데, 위 WAF에서 select를 필터링하고 있지만 드림핵 강의 중 WAF Bypass 부분을 보면 select를 대신할 만한 함수를 알려준다.

 

 

,도 필터되고 있따.

 

👇 페이로드

level=1/**/union/**/values(char(0x61)||char(0x64)||char(0x6d)||char(0x69)||char(0x6e))

 

GG

 

새롭게 알게 된 점 -> union을 쓸 때 앞 쿼리에서 조회되는 행이 없더라도 뒤 쿼리가 실행될 수 있다. (컬럼 갯수와 자료형을 맞춰주면 된다.)

'Web Hacking > Dreamhack' 카테고리의 다른 글

[Dreamhack] crawling write up  (0) 2024.04.26
[Dreamhack] file-csp-1 write up  (0) 2024.04.23
[Dreamhack] chocoshop write up  (2) 2024.04.20
[Dreamhack] web-deserialize-python write up  (0) 2024.04.16
[Dreamhack] login-1 write up  (0) 2024.04.14