write-up(web)/LOS

    [Lord of SQLInjection] wolfman write-up

    [Lord of SQLInjection] wolfman write-up

    문제의 소스 코드입니다. id가 admin이 되면 문제가 풀립니다. 먼저 guest가 id로 들어가 있으므로 해당 조건을 거짓으로 만들기 위해 pw에 임의의 값을 넣어줍니다. 그 다음에 문제에 맞는 조건을 넣어줍니다. 쿼리는 다음과 같습니다. pw='a' or id='admin' and (pw='a' or 1=1)# 공백을 필터링하고 있으므로 %09(tab)으로 우회해줍니다. 해당 쿼리를 url로 넘겨주면 문제가 풀립니다.

    [Lord of SQLInjection] orc write-up

    [Lord of SQLInjection] orc write-up

    문제의 소스 코드입니다. 만약 id 값이 존재하면(쿼리의 결과가 참이면) Hello admin이 출력됩니다. 두 번째로 쿼리의 결과 값이 존재하면서 pw가 실제 데이터베이스의 pw값이랑 일치할 때 문제가 풀립니다. blind sql injection을 통해서 pw 값을 찾아서 값을 넣어줘야 합니다. pw에 임의의 값을 넣어서 false로 만들고 다른 조건을 뒤에 넣은 뒤 or로 연결시켜줍니다. 뒤의 조건이 true가 되면 Hello admin이 출력됩니다. 먼저 pw의 길이를 구한 뒤 1문자씩 무작위 대입을 통해 pw를 알아내겠습니다. 먼저 pw의 길이를 length() 함수를 통해 알아냅니다. 그런 뒤 substr() 함수를 통해 첫 번째 문자부터 1개씩 가져와서 무작위 대입으로 값을 알아냅니다. 만약..

    [Lord of SQLInjection] goblin write-up

    [Lord of SQLInjection] goblin write-up

    문제의 소스 코드입니다. ' " `을 사용할 수 없습니다. no에 일단 1을 넣어주니 guest로 로그인이 되었습니다. 느낌 상 2번이 admin일 것 같아서 아래와 같은 구문을 넣어줍니다. no=99 or no=2 (id='guest' and no=99) 까지의 조건식은 false가 되고 뒤에 넣어준 (no=2) 구문은 true가 되어서 no가 2인 id(admin)가 나오게 됩니다. id가 admin이 되었으므로 문제가 풀립니다.

    [Lord of SQLInjection] cobolt write-up

    [Lord of SQLInjection] cobolt write-up

    문제의 소스 코드입니다. admin으로 로그인하는 것이 목표입니다. 소괄호 안이 비어있지 않으면 필터링이 되지 않습니다. 따라서 id에 admin을 넣어주고 pw를 참으로 만들어주면 됩니다. 아래와 같은 구문을 넣어주면 됩니다. id = 'admin' and (pw='aa' or 1=1)# id가 참이되고 pw도 참이 되므로 ture && ture => ture가 됩니다. 문제가 풀렸습니다~

    [Lord of SQLInjection] gremlin write-up

    [Lord of SQLInjection] gremlin write-up

    문제 화면입니다. id와 pw를 입력할 수 있습니다. where 조건을 참으로 만들면 문제가 풀립니다. id에 임의의 값을 넣어주고 그 뒤에 참이 되는 조건을 or로 걸어줍니다. 활용한 구문은 아래와 같습니다. id='aa' or 1=1# 문제가 풀렸습니다.