본문 바로가기

웹해킹/webhacking.kr

webhacking.kr old 59번 문제풀이(Writeup)

반응형

webhacking.kr old 59번 문제풀이(Writeup)

old 59번 문제풀이 1

문제를 들어가면 위와 같이 출력된다. 코드가 있으니 코드부터 확인하자.

 

 

old 59번 문제풀이 2

핵심은 로그인할 때 lv가 admin이면 문제가 해결된다. 먼저 몇 가지 테스트 값을 넣어보자.

 

 

 

old 59번 문제풀이 3

보면 id와 phone이 넘어가고 그와함께 lid와 Iphone 값이 함께 전달되는 것으로 보인다.

 

old 59번 문제풀이 4

이번엔 login에서 같은 값을 넣으니 lid와 lphone에 값이 전달된다.

 

old 59번 문제풀이 5

id는 저장되고 lv는 로그인될 때 지정되는 것으로 보인다.

 

 

mysqli_query($db,"insert into chall59 values('{$_POST['id']}',{$_POST['phone']},'guest')");

데이터베이스에 insert할 때 모습이다. 뭔가 여기서 SQL Injection이 될 것 같았다. phone 값을 준 후 guest 말고 admin을 주면 될 것 같아 보인다.

 

 

 

old 59번 문제풀이 6

mysqli_query($db,"insert into chall59 values(id,1,admin)-- ,'guest')");

이런 식으로 주는 것이다. 하지만 admin이 필터링이 되고 있어서 제대로 작동하지 않는다. 진짜 갖가지 SQL Injection 쿼리를 넣었는데 잘 안됐다. 그래서 마지막으로 내장 함수를 찾는 중에 reverse() 함수가 존재한다는 것을 알게 되었다. 혹시 해서 넣었다.

 

old 59번 문제풀이 7

join이 되고, login을 해보니 admin으로 로그인이 된다.

 

728x90