[WriteUp]/[Lord Of SQLInjection] giant

2025. 3. 5. 20:44Hacking/WebHacking Wargame Writeup

여기서 살펴봐야할 코드는 다음과 같다.

if(strlen($_GET[shit])>1) exit("No Hack ~_~");

→ shit의 길이가 1보다 크면 뚫을 수 없게 해놨다.

$query = "select 1234 from{$_GET[shit]}prob_giant where 1";

그리고 from과 prob_giant가 붙어있다 = 공백이 없음

if(preg_match('/|\\n|\\r|\\t/i', $_GET[shit])) exit("HeHe");

→ 여기서 필터링 되는 구문들이 몇 개 있다.

우선 공백을 넣는 방법은 대표적으로 다섯개 존재한다.

%09 (tab \t)

%0a (linefeed \n)

%0b (vertical tab)

%0c (form feed)

%0d (carriage return \r)

⇒ 여기서 %0b와 %0c만 필터링 안 된다는 것을 알 수 있다.