본문 바로가기

웹해킹/los

(3)
level3 3번문제이다. 3번문제는 id가 guest로 고정되어 있고 no에 따라 결과 값을 출력해주는 코드이다. 근데 아이러니한 것은 id가 amdin일 경우 문제가 해결된다고 한다. 일단 no값에 1을 집어 넣어보았다. 다음과 같이 hello guest라는 문구가 출력된다. 다음으로 or 1=1#이라는 injection 공격 코드를 집어 넣어보았다. 다음과 같이 hello guest라는 문구가 출력된다. 이제 no=1뒤에 admin이라는 id를 집어 넣어보았다. -> ?no=1 or id ='admin' '를 사용하지 말라는 경고 표시가 뜬다. '를 필터링 하였기 때문에 '를 사용하지 않고 '를 사용해야 한다. 다음과 같이 '를 우회하기 위해 아스키 코드를 사용하였다. 아스키 코드표 아스키 코드표를 확인하면 a..
level2 다음 문제는 id변수와 pw 변수를 받는데 pw를 md5 해시 함수를 돌려 값을 저장한다. 일단 값이 어떻게 들어가는지 확인하기 위해 id 변수와 pw 변수에 값을 집어 넣어 보았다. 다음 사진은 id, pw 변수에 값을 집어넣은 결과이다. 다음으로 ' or '1=1#을 집어 넣어 보았다. 공격이 먹히지 않는다. 어떻게 해야 고민을 하다가 & 연산자를 통해서 다음 변수로 넘겨준다는 것을 알았다. 그래서 & 연산자를 쓰지 않고 pw 변수를 불러와 받으면 될 것 같다고 생각했다. -> id=admin' pw=' 'or '1=1# 다음과 같이 입력해 보았다. 문제를 해결하였다.
level1 1번 문제이다 id변수와 pw 변수를 받아서 select문을 돌린 뒤 결과를 출력해주는 코드이다. sql injection 중에 가장 흔한 공격방식인 ' or 1=1#을 사용해서 변수에 값을 넣어주면 될 것 같다. 또한 get 방식을 통해 id와 pw를 받기 때문에 URL에 ?id = ~방식으로 집어넣으면 될 것 같다. -> ?id=admin&pw=' or '1=1# 다음과 같이 공격을 하면 1단계를 클리어 할 수 있다.