(요청){Root-me} SQL injection - authentication - GBK

해킹대회 문제 풀이 연습장소

Moderator: amesianx

Post Reply
User avatar
SinJiRu
Posts: 83
Joined: Wed Oct 14, 2015 2:54 pm

(요청){Root-me} SQL injection - authentication - GBK

Post by SinJiRu » Fri Sep 23, 2016 3:10 pm

https://www.root-me.org/en/Challenges/W ... cation-GBK

SQL-GBK 문제입니다
1.png
1.png (7.54 KiB) Viewed 474 times
2.png
2.png (5.39 KiB) Viewed 474 times

평범한 로그인창.. 맴버목록에는 1admin

3.png
3.png (55.45 KiB) Viewed 474 times
'or 2>1 --
을 넣어봤지만 아무일도 일어나지않음 ..
4.png
4.png (69.27 KiB) Viewed 474 times
login[$ne]=admin&password[$ne]=admin
를 시도해봄..
9.png
9.png (22.64 KiB) Viewed 474 times
새로운 오류메세지와
Warning: md5() expects parameter 1 to be string, array given in /challenge/web-serveur/ch42/index.php on line 9 Warning: addslashes() expects parameter 1 to be string, array given in /challenge/web-serveur/ch42/utils.php on line 17
라는 말이 떴지만

역시 여기서 방향을 못잡고 있는 중입니다


%%% GBK에 대한 개념을 조금 설명해주시면 감사하겠습니다 ~^~

hackhack
Posts: 14
Joined: Mon Sep 26, 2016 1:12 am

Re: (요청){Root-me} SQL injection - authentication - GBK

Post by hackhack » Tue Oct 18, 2016 3:47 pm

gbk란 일단, 인코딩 방식 종류중 하나입니다. 보통이런 문제는, mysql_query('SET NAMES gbk'); 쿼리를 날리면서 기작됩니다. 이러면, 클라이언트에서는 여전히 latin1 인코딩을 사용하는데, mysql서버에서는 gbk인코딩을 사용하는 불일치가 발생하게 됩니다.
여기서, %bf%27 (%27은 ') 을 사용하여, '를 빠져나올 수 있습니다. 어떻게 빠져나올 수 있는걸까요?
이걸 전송하면, 서버에서 addslashes를 호출했을때, 슬래시를 삽입하기 때문에, bf 5c 27이 됩니다. 여기까진 좋은데, 이걸 latin1인코딩 그대로 mysql서버로 전송했을때, gbk에서는 bf 5c 27을 각각으로 인식하는게 아니라, bf 5c를 문자 하나로 인식하고, 27을 별개의 하나의 escape되지않은 문자로 인식하게 됩니다. 그래서, 결국 그냥 문자하나+'가 되어버립니.
참고 - http://stackoverflow.com/questions/5741 ... ape-string

Post Reply

Who is online

Users browsing this forum: No registered users and 20 guests