Gae Ko's Blog

[webhacking.kr] challenges26 본문

웹해킹 /[webhacking.kr]

[webhacking.kr] challenges26

Gae Ko 2017. 11. 7. 02:05

저걸 눌러보니 

php코드를 보면 


id를 GET방법으로 입력받는데 id값을 eregi()함수로 필터링한다.

"admin"라는 문자열이 포함되어 있으면 no!라고 알리고 아웃 

-> id값에 admin이라는 문자열이 포함되있어서는 안된다.

입력받은 id값을 url디코딩한 결과를 id값으로.

id에 저장된 값이 'admin'이면 문제가 풀린대.


근데 영어와 숫자들은 urlencoding을 해도 바뀌지 않는다. 어떻게 하지...

url인코딩 표를 찾아보니 영어도 되나보다.

이 표를 통해 admin을 url인코딩한 값이 %61%64%6d%69%6e 이다. 

근데 이 값을 그대로 넣으면 no!라고 뜬다. 왜냐면 php에서 %61%64%6d%69%6e 를 url디코딩한 결과값으로 자동 인식하기 때문에 

eregi함수에서도 필터링되니까 저 값에서 한 번 더 인코딩해주면 자동 url디코딩한 결과인 %61%64%6d%69%6e 로 인식하니까 eregi함수에서도 걸리지 않고 

입력받은 id값을 디코딩한 값을 다시 id값으로 저장한다 했으니까 %61%64%6d%69%6e 을 디코딩한 결과인 admin이 id값으로 저장될 것이다.


즉, id값에 %2561%2564%256d%2569%256e 저장하면 된다.

id값은 GET방식으로 입력받는다 했으니까 URL로 값을 넘겨주면 된다.





ereg("찾고자 하는 문자", "임의의 값")   // 대·소문자 구분 O
eregi("찾고자 하는 문자", "임의의 값")  // 대·소문자 구분 X


'웹해킹 > [webhacking.kr] ' 카테고리의 다른 글

[webhacking.kr] challenges38  (0) 2017.11.19
[webhacking.kr] challenges42  (0) 2017.11.07
[webhacking.kr] challenges24  (0) 2017.11.07
[webhacking.kr] challenges1  (0) 2017.10.23
[webhacking.kr] challenges4  (0) 2017.10.23