write-up/webhacking.kr

57번

범고래_1 2016. 4. 9. 17:43






$_SESSION[id]와, 입력받은 값, php변수($secret_key)를 테이블에 넣는다.

출력해주는 부분도 딱히 없는데, 이 $secret_key를 알아내야 한다.

php변수값을 알아내는 방향으로 접근하면 답이 없다.


테이블에 있는 데이터를 추출한다는 방식으로 접근해야 한다.

우리가 이용할 수 있는 쿼리는 insert문 뿐이다.

$_GET[se]부분에 쿼터가 없어서 인젝션이 가능해보인다.


if문을 이용하여 time based sql injection공격을 했다.

if(length(pw)>6, sleep(1), 0)


length(pw)=10일 때 참이므로, 길이를 알아냈으니 이제 한 글자씩 추출해내면 된다.




<교훈>

이번엔 답이 다 숫자였다....

bin함수로 이진값을 추출할 땐 앞 자리가 1부터 나오는데, 

lpad로 7자를 안 맞추어서 엉뚱한 값이 뽑혔다.


이를테면 bin('1')은 110001인데, lpad로 안 맞추고 그냥 7자를 뽑으면, 1100010으로 뽑혀서 엉뚱한 값이 뽑혀나온다. 

(맨 끝의 0이 의미 없이 잘못 뽑힘)

lpad(bin('1'), 7, 0)와 같이 맞춰주면 0110001로 맞춰져서 7자로 뽑아주면 잘 뽑힌다....

'write-up > webhacking.kr' 카테고리의 다른 글

13번  (0) 2016.07.16
webhacking.kr 파일 업로드 문제  (0) 2016.07.16
51번  (0) 2016.04.09
45번  (0) 2016.04.09
8번  (0) 2016.04.09