power-girl0-0

[webhacking.kr-old] 7번 본문

War game/webhacking.kr

[webhacking.kr-old] 7번

power-girl0-0 2021. 6. 20. 01:14
728x90

주소 : https://webhacking.kr/old.php

 

Webhacking.kr

 

webhacking.kr


 [ 풀이 ] 

admin페이지가 출력되지만, auth버튼을 눌렀을 시, 아래와 같이 권한이 없다고 출력된다.

view-source를 클릭하여, 소스코드를 확인해보자.

위 코드를 보고, 아래와 같은 조건문을 발견할 수 있다.

  • val라는 변수값을 GET방식으로 받아와서, go라는 변수에 저장한다.
  • 2 - + from _ = \s(공백) * / 등을 필터링하고 있다.
  • rand변수에 랜덤값을 받아와서, 쿼리문을 랜덤으로 실행하고 있다.
  • elseif를 조건문에 적힌 것과 같이, data[0]이 2이면 Hello admin이 출력되면서 문제가 클리어된다.

즉, data[0]에 2값을 넣으면 된다.

따라서 소스코드를 살펴보면, go변수인 입력받아오는 값이 2이면 문제가 클리어 될 것으로 예상 된다.


하지만, 2를 직접적으로 넣으면 풀리지 않는다.

why??? 필터링 하고 있기 때문이다 ~_~  따라서, 직접적으로 입력하면 아래와 같이 출력된다.

음 그렇다면, 필터링 하고 있기 때문에 1+1도 불가능이고 3-1도 불가능이다. ㄷㄷ


그래서 다른 우회 방법을 찾아야 한다.

이진수로 도전해보았다.

 

응 실패~_~ ㅎㅎㅎㅎㅋㅋㅋㅋㅎㅋㅎㅋ

 

다시 다시 다른 방법을 도전해보아야 쥐~_~


이번에는 2를 문자열로 바꾸기 위해서, char()를 사용해보았다. 2를 그냥 넣으면 걸리기 때문에 아스키코드를 넣었다.

ㅎ_ㅎ 또또 필터링에 걸려브렀다~_~


혹시, char(50)을 2로 인식하지 못하나??

union을 사용하여, 앞 쿼리문은 틀리게 하고 뒤에 쿼리문이 맞게 하기 위해, 앞 val 변수에는 1과 2를 제외한 6666이란 값을 넣어주었다.

또한, 공백을 필터링하고 있으므로 ()로 대체하여 넣어주었다. %23으로 마지막은 주석처리를 하였다.

?val=666)union(select(char(50)))%23

 

처음에는 nice try!라고 출력된다.

왜냐하면 랜덤한 값으로 인해 쿼리문이 달라지기 때문이다.

따라서 여러번 새로고침해주면 문제가 클리어된다.

( 무심코 새로고침해보다가,,,,, 캡쳐를 못했다 ㅠ_ㅠ )

 


두번째 풀이 방법이다.

다시 살펴보니, %기호는 필터링하고 있지 않다!!

그래서 5%3을 하면 2가 나올 것으로 예상된다.

??응 안된다 ㅎ_ㅎ 혹시, 문자로 받아들여지는 건가?? 라는 생각에 쿼리문을 사용해보았다.

 

?val=666)union(select(5%3))%23

clear!! 풀었당 ㅎ_ㅎ 

 

728x90

'War game > webhacking.kr' 카테고리의 다른 글

[webhacking.kr-old] 9번  (0) 2021.06.20
[webhacking.kr-old] 8번  (0) 2021.06.20
[webhacking.kr-old] 6번  (0) 2021.06.19
[webhacking.kr-old] 5번  (0) 2021.06.19
[ webhacking.kr-old ] 4번  (2) 2021.06.19
Comments