Security/Web Vulnerabilities

[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 같은 문자도 필터링하고

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

 

'Security > Web Vulnerabilities' 카테고리의 다른 글

Directory listing 취약점  (0) 2019.04.30
SQL Injection 실습  (0) 2019.04.29
[Webhacking] Challenges 1. Cookie value  (0) 2018.11.24
[Webhacking] 회원가입, base64 decode  (0) 2018.11.24
[LOS] 문제 7. orge  (0) 2018.10.26