티스토리 뷰

https://los.rubiya.kr/chall/zombie_78238dee92f8ed0f508b0e9e00fc0e49.php

 

GET 파라미터로 pw를 받는다.

쿼리문에서 반환되는 값이 있으면 <h2></h2>태그로 pw를 출력해준다.

' union select 'asdf'--

위와 같이 쿼리를 작성해주면

 

일단 값이 나오긴 한다.

근데 solve를 부르기 위해서는 내가 입력한 값과 실제로 반환되는 값이 같아야 한다.

 

이전 문제와 같은 Quine Query문제이다.

 

Quine Query에 대한 설명 : https://aidencom.tistory.com/325

 

[ SQL Injection Tech ] Quine Query(Quine SQL Injection)

Lord Of SQL Injection Ouroboros 문제의 주제인 Quine Query 에 대해서 알아보도록 하자. 먼저 Quine Query 를 알아보기 전 전산학에서의 Quine(콰인)에 대한 정의를 보면 다음과 같다. Quine Quine(콰인)은 입력 없이

41d3n.xyz

 

결국 내가 입력한 값에 의해 그 입력과 동일한 출력이 나와야 한다.

 

내가 입력한 값을 가지고 있는 버퍼? 같은게 있을까 싶었는데 비슷한게 있었다.

 

DB의 메타 정보와 관련한 데이터를 가지고 있는 information_schema가 이번에도 도움이 되었다.

processlist 테이블을 불러오면 실행중인 쿼리를 가져와준다.

 

이런식으로 나온다

혹시나 저렇게 여러줄이 나오면 안되니까 LIMIT을 걸고, INFO 컬럼에 있는걸 참조하면 되겠다.

아까 쿼리를 조금 수정해서

' union select info from information_schema.processlist LIMIT 1--

이렇게 걸어주면

 

쿼리가 똑같이 나온다!

 

근데 아직 해결이 안된것은, pw에 넣은 것 외에 앞의 select pw ~ pw='이 같이 들어갔기 때문이다.

right 함수로 오른쪽부터 잘라주면 될 것 같다.

' union select right(info, n) from information_schema.processlist LIMIT 1--

n에 저 코드 자체의 길이를 넣어주면 된다. 즉

' union select right(info, 78) from information_schema.processlist LIMIT 1--

이렇게 된다. 문자열 길이가 77인데 78인 이유는 -- 뒤에 띄어쓰기 있어야 작동해서...ㅎ # 써도 되긴 한데 URL 인코딩 귀찮다.

 

페이로드를 삽입하면

?

 

뭐지?

개꿀잼 몰카인가?

 

싶었는데 알고보니까 저 오른쪽에 '가 내가 넣은게 아니었다;;; 이거 떄문에 30분은 날린듯

left로 오른쪽 것까지 날려주면

 

흐히히 재밌당

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함