old-29 풀이
2024. 5. 2. 03:11ㆍwebhacking.kr
728x90
파일 이름, 업로드 시간, IP가 작성되는 걸 확인할 수 있습니다
페이지 소스에서는 확인할 수 있는게 없으니, 프록시로 패킷을 잡아보겠습니다
패킷의 form-data 부분에 name과 filename이 들어가 있습니다
filename에 인젝션 구문을 넣어주는 형식이겠지만, 아직은 구조를 모르니 값을 넣어가며 테스트해야 할 것 같네요
hello', '50', '[작성자의 IP]');# 으로 값을 넣어주니 제대로 업로드가 됐습니다
들어가는 순서가 filename, time, ip니까 아래와 같은 구조로 되어있겠네요
INSERT INTO [table_name] VALUES(filename, time, ip);
VALUES에 들어가는 값들이 어디에 위치하는지 알기 위해 DB 이름을 추출해 주겠습니다
filename="hello', '1234', '[IP Address]'),((SELECT database()), '1234', '[IP Address]')#"
이런 구문으로 DB 이름을 추출해 봤습니다
같은 방식으로 쿼리만 바꿔서 테이블과 컬럼 이름, 그 외 정보들도 추출해 주겠습니다
2개의 테이블이 나왔습니다
딱 봐도 수상해 보이는 flag_congratz의 컬럼을 조회해 보겠습니다
이제 컬럼의 값들을 가져오겠습니다
728x90
'webhacking.kr' 카테고리의 다른 글
NotSQL 풀이 (PW = FLAG) (0) | 2024.05.08 |
---|---|
old-40 풀이 (0) | 2024.05.04 |
old-55 풀이 (0) | 2024.04.15 |
old-13 풀이 (0) | 2024.04.11 |
g00gle2 풀이 (0) | 2024.04.10 |