$_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 |