Web/webhacking.kr

[Webhacking] Challenges 3. form post, sql injection

__bo0o_ 2018. 12. 25. 02:43




우선 즐겁게 네모네모 로직을 해준다.


이후에 gogo 버튼을 누르면

아래와 같은 화면으로 넘어가고




F12를 통해 소스를 확인해보면

입력된 데이터를 서버로 전송하는 form이 

post 방식으로 전달되는 것을 확인할 수 있었다.


input 태그 속성인 hidden을 지우면

아래처럼 name 앞부분에 value 값이 뜨는 것을 볼 수 있고



이 값을 1로 변경해 전송하면 다음과 같다.




그리고

와이어샤크를 통해 패킷을 확인해본 결과

answer=1&id=a 형식으로 데이터가

body에 넣어 전달되는 것을 확인할 수 있었다.


여기에 sql injection을 시도해보자.

or '1'='1' 해도,

or 1=1 해도,

or 1(True) 해도 아래와 같은 메시지가 떴고,


|| 1=1 해도 똑같은 메시지가 뜨는 걸 보니

=도 필터링이 되어있는 듯 했다.


그래서 || 1(True)를 했더니 admin 이름으로 기록된 정보를 볼 수 있었다.




메뉴의 Auth에 들어가

flag 값에 answer 값을 넣어주면

3번 문제를 클리어 할 수 있다.



여기서 가장 중요한 사실은

form 태그의

get 방식, post 방식

 둘 다 보안에 취약하다는 점이다.


둘의 차이는 단지

URL에 데이터가 보이느냐와 안보이느냐이기 때문에


sql injection 같은 공격을 할 수 없도록

or 같은 문자도 필터링하고

전송되는 데이터의 값을 변경할 수 없도록 처리해줘야한다.


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

[Webhacking] Challenges 1. Cookie value  (0) 2018.11.24
[Webhacking] 회원가입, base64 decode  (0) 2018.11.24