Los

    [LOS] xavis 풀이 (st.19)

    풀이 이번 Blind SQLi에서는 regex, like를 Filtering한다. 부등호를 이용해 pw의 길이를 먼저 찾아내자. Query: ?pw=1' or id='admin' and length(pw)=12%23 pw는 12자이다. 이제 길이를 알았으니, 파이썬을 이용해 pw값을 알아내자. 라고.. 생각했는데 뭔가 이상하다. 값이 하나같이 전부 0으로 나온다. 혹시나 하고, substr(pw,1,1)의 길이를 확인해봤다. Query: ?pw=1' or id="admin" and length(substr(pw,1,1))=4%23 -> True ??? UTF-8이라면 1이어야 정상인데 4가 참이란다.. 다른 값도 확인해보니 2, 3도 4byte이고, 나머지는 값이 없었다. 4byte * 3 = 12이므로..

    [LOS] orc 풀이 (st.4)

    풀이 언뜻 보면 지금까지 했던 SQLi와 달라 보이지만, 둘째 단락을 봐보자. result['pw'] == $_GET['pw']가 같아야 한다. 즉, 진짜로 pw값을 맞춰야 한다는 소리다. 이번 문제는 Blind SQLi이다. 우선 pw의 길이를 맞추기 위해, 다음 Query문을 넣어보자. Query: ?pw=1' or id='admin' and length(pw)=8%23 물론, 나는 패스워드 길이를 파이썬을 이용해 찾았다. 이렇게 pw가 8자리라는 정보를 얻었으면, substr 함수를 통해 BruteForce 해볼 수 있다. 여기서 substr 함수가 무엇인지 간단히 설명하겠다. substr(string, start, length) -> 주어진 string에 start번째부터 length만큼 자른다...

    [LOS] cobolt 풀이 (st.2)

    풀이 기본적인 SQL Injection 문제와 달라진 것이 있다면, pw에 md5 함수가 추가되었다. md5함수에 true값이 있는 것도 아니고, 상식적으로는 값을 맞출 수 없다. 그래서 다음 Query문을 다음과 같이 변경하자. Query: ?id=test' or id='admin'%23

    [LOS] goblin 풀이 (st.3)

    풀이 쿼터 Filtering이 추가된 SQL Injection 문제이다. 간단하게 16진수를 이용해 우회해주자. Query: ?no=0 or id=0x61646d696e

    [LOS] gremlin 풀이 (st.1)

    풀이 딱히 설명할 게 없는 간단한 SQL Injection 문제이다. Query: ?id=admin' or 1=1;%00