TigerDemon

[4주차] LORD OF SQLINJECTION_orc 본문

2023-SWLUG/CTF 문제 풀이

[4주차] LORD OF SQLINJECTION_orc

호랑2D 2023. 11. 1. 15:18

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

 

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

 

los.rubiya.kr

위 링크에 들어가면 아래 사진처럼 뜬다.

우선 참과 거짓에 따라 다르게 나오는 포인트를 찾아보기 위해 ?pw='||1=1%23 을 url 뒤에 입력하면 아래 사진과 같이 Hello admin 이라는 문구가 출력된다.

이 문제를 풀기 위해선 pw가 뭔지 알아야한다. 길이를 알아야하기 때문에 ?pw='or length(pw)>5;%23 등을 입력한다. 숫자만 바꿔서 하면되는데 이때 참인지 거짓인지는 Hello admin 이라는 문자열로 알 수 있다. 

이렇게 찾다보면 길이는 8이 나온다는 것을 알 수 있다.  이제 pw의 첫번째 문자부터 8번째 문자까지 참과 거짓을 통해 알아보면 된다.  ?pw=1' or id='admin' and ascii(substr(pw,a,1))=&&%23 에서 a는 비밀번호 length이다 1~8까지 집어 넣으면서 &&에 ASCII 표 문자를 하나씩 넣어서 하면 된다.

위에 사진에서 pw의 첫 자리에 48을 넣어보니 Hello admin이 나왔으으로 pw의 첫 자리는 0임을 알 수 있다.

 

ASCII 표이다. 출처: https://www.commfront.com/pages/ascii-chart

 

ASCII Chart

ASCII Table - Standard and Extended ASCII Chart, ASCII Codes ASCII stands for American Standard Code for Information Interchange. It ranges from 0 to 255 in Decimal or 00 to FF in Hexadecimal. ASCII codes can be divided into two sets - Standard ASCII codes

www.commfront.com

이렇게해서 pw는 095a9852라는 것을 알게되었다. 따라서 url에 ?pw=095a9852 를 붙이면 된다.

총 4문제를 풀었다.