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 |