
55번 문제에요.
배점은 400점, 분야는 DB에요.

들어가자마자 이상한게 마우스를 쫓아오네요.
랭크를 눌러보면

뭔가의 랭킹이 있네요.
저기 INT_MAX 를 눌러보면
?score=
로 GET 를 날리면서 점수와 닉네임을 출력해요.

그리고 밑에는 코드 한줄이 적혀있네요.
대충 ID, 점수, FLAG 값을 집어넣네요.
그러면 이제 인젝션 포인트를 찾아보죠.

score 를 1 로 바꾸면

mpaljo112 // 1

score 를 if(true,2,1) 로 바꾸면?

jandi // 2

select database() 같은걸 집어넣으면

해킹하지 말래요.
select 가 금지인가봐요.

그러면 53번문제에서 썼던
1 procedure analyse()
를 넣어보면?

webhacking.chall55.id //
이거랑 limit 를 이용해서 컬럼명을 알아내야겠네요.

1 limit 1,1 procedure analyse()
를 넣어보면?

webhacking.chall55.score //

1 limit 2,1 procedure analyse()
를 넣어보면?

webhacking.chall55.p4ssw0rd_1123581321 //
그러면 이제 length 와 substr 를 이용해서 값을 뽑아내야하는데...
substr 이 필터링되요.
이럴땐
left() 와 right() 함수를 이용해서 substr 처럼 작동하게 만들어주면 되요.

substr('ABCD',1,1) = right(left('ABCD',1),1)
를 넣으면 이런식으로

substr('ABCD',2,1) = right(left('ABCD',2),1)
를 넣으면 이런식으로 작동하게끔요.

그러니 스크립트에다 값을 집어넣고 돌리면?

FLAG{EASY_PEASY_LEMON_SQUEEZY!}

이제 FLAG 를 Auth 에다가 넣으면?

빠밤!
문제가 풀렸네요.
'연구글 > webhacking.kr' 카테고리의 다른 글
webhacking.kr Challenge(old) 57 / DB (0) | 2020.08.25 |
---|---|
webhacking.kr Challenge(old) 56 / DB (0) | 2020.08.25 |
webhacking.kr Challenge(old) 54 / Computing (0) | 2020.08.25 |
webhacking.kr Challenge(old) 53 / DB (0) | 2020.08.25 |
webhacking.kr Challenge(old) 52 / Command + DB (0) | 2020.08.25 |