1. 6주차 SQL injection 데이터 추출(문제풀이)


※ 주의 사항 :

1. 교육 목적으로만 이용 해주세요.
2. 무단 침입, 데이터 유출, 개인 정보 침해 등 불법적인 활동은 심각한 법적 결과를 초래할 수 있습니다.
3. 개인적인 테스트 환경을 구축해서 실습하시길 바랍니다.


1.1  1번 문제


본 글은 문제풀이 과정만 나타냈기에, 과정에서 이해가 안되면 이전 글을 보고 오시면 좋습니다.

1.1.1 sql injection 포인트 찾기



image-20240528020605181

image-20240528021016000

image-20240528021131341

nor 만 검색해도 normaltic이 출력되는 것으로 보아 like id ‘%아이디%’ 로 구성되어 있다고 유추할 수 있습니다.


1.1.2 column 개수 찾기



image-20240528021327522

order by 1부터 순차적으로 숫자를 증가해서 넣었을 때 5 이상 부터는 출력되지 않으므로 컬럼 수는 4개입니다.


1.1.3 출력되는 column 위치 찾기



image-20240528021423237

1,2,3,4 값을 출력했을 때 위치는 순서대로 컬럼이 배치되어 있음을 알 수 있습니다.


1.1.4 DB이름 확인하기



image-20240528021502384

1,2,3,4 모두 출력되므로 그 중 하나에 database()를 넣어주며 이름을 확인한다.


1.1.5 table이름 확인하기



image-20240528021648760

flag_table 부터 확인합니다.


1.1.6 column 이름 확인하기



image-20240528021835356

flag_table 의 컬럼은 flag네요.


1.1.7 data 추출하기



image-20240528022006574


1.2  2번 문제


1.2.1 sql injection 포인트 찾기



image-20240528022255869

image-20240528022322458

normaltic이라고 검색할 때는 정보가 나오는데, n 만 검색했을 때는 나오지 않고 검색한 단어 전체를 검색해야 정보가 뜹니다.

image-20240528022358841

sql injection이 가능하네요.


1.2.2 column 개수 찾기



image-20240528022454579

7 이상부터 정보가 안 나오니 칼럼 수는 6 개 입니다.


1.2.3 출력되는 column 위치 찾기



image-20240528022613341

6 값 만 정보에 뜨므로 이후에 필요한 정보는 6 위치에 작성하면 됩니다.


1.2.4 DB이름 확인하기



image-20240528022640388


1.2.5 table이름 확인하기



image-20240528022745304


1.2.6 column 이름 확인하기



image-20240528022855395


1.2.7 data 추출하기



image-20240528022951224

데이터를 출력했는데 ‘not here’ 이라고 뜨네요 ㅠㅠ 다른 곳을 찾아야 할 것 같습니다.

image-20240528023040440

우선 이 데이터에서 여러 개인데 맨 위에 것 만 표시되어 밑에 있는 데이터가 안보일 수 도 있다는 가정 하에 order by 를 봤는데 없네요.

image-20240528023245129

다른 컬럼 이름 도 찾아봤는데 없었습니다.

image-20240528023431897

다른 테이블 이름이 존재했네요.

image-20240528023533026

image-20240528023659672

다른 테이블로 들어가서 데이터를 보니 플래그 값이 있었습니다!

댓글남기기