write-up(web)/LOS

    [Lord of SQLInjection] green_dragon write-up

    [Lord of SQLInjection] green_dragon write-up

    문제의 소스 코드입니다. 이 문제는 쿼리가 2개입니다. 첫 번째 쿼리의 결과가 두 번째 쿼리의 입력으로 들어갑니다. 하지만 아무리 참인 조건을 넣어도 두 번째 쿼리가 나타나지 않습니다. 이를 통해 prob_green_dragon 테이블은 데이터가 없는 빈 테이블이라는 것을 알 수 있습니다. 그래서 union을 통해 데이터를 넣어줘야 합니다. 같은 테이블인지 모르고 참인 조건을 넣는 삽질을 하다가 같은 테이블임을 깨닫고 두 번째 쿼리를 첫 번째 쿼리와 같도록 만들어줘야 함을 알게 되었습니다. 아스키 값으로 바꿔준 후 넣어주면 이렇게 나옵니다. char() 함수의 괄호 안에 있는 admin을 아스키로 인코딩 해서 넣어줘야 합니다. char() 함수 마지막 인자에 23(#)도 넣어줘야 합니다. 값을 바꿔주고 ..

    [Lord of SQLInjection] evil_wizard write-up

    [Lord of SQLInjection] evil_wizard write-up

    문제의 소스 코드입니다. 이전 문제인 hell_fire와 필터링이 다르다는 것 말고는 동일합니다. 데이터도 2개로 동일합니다. 이전 문제인 hell_fire에서 짰던 파이썬 코드를 그대로 활용해줍니다. 길이는 30문자이고 전부 아스키 값입니다. 이전 문제와 동일하게 이진 탐색 방식으로 구해줍니다. 얻어낸 pw 값을 email 파라미터로 전달해주면 문제가 풀립니다.

    [Lord of SQLInjection] hell_fire write-up

    [Lord of SQLInjection] hell_fire write-up

    문제의 소스 코드입니다. admin의 email을 알아내면 성공입니다. 일단 email을 넣어보면 admin, rubiya 2개의 데이터를 가지고 있습니다. order by에 대해 검색하던 중 case로 정렬하는 방법에 대해 찾았습니다. case when [조건] then [참일 때 값] else [거짓일 때 값] end 이 방법을 활용해 admin을 첫번째로 올린 다음 limit 1을 설정해서 해당 조건이 참일 때만 admin이 보이게끔 만들어 줍니다. id가 admin이면서 pwLen이 admin의 email 길이보다 작을 때 참이 됩니다. request 요청 결과를 beautifulsoup를 이용해 원하는 부분(table 태그)만 잘라내줍니다. 조건식이 참이면 table 태그 안에 admin이 있습..

    [Lord of SQLInjection] dark_eyes write-up

    [Lord of SQLInjection] dark_eyes write-up

    문제의 소스 코드입니다. 이전 문제인 iron_golem의 응용 문제입니다. col, if, case, when, sleep, benchmark를 필터링 합니다. iron_golem에선 if를 사용했었는데 이제 다른 함수를 찾아줘야 합니다. 찾아보니 cot()라는 함수가 있습니다. 이제 iron_golem 때 사용했던 코드에 cot함수를 적용시키면 됩니다. 코드에 대한 설명은 이전 글 참고해주세요. https://ssongkit.tistory.com/93 [Lord of SQLInjection] iron_golem write-up 문제의 소스 코드입니다. error based blind sql injection 문제입니다. pw를 정확하게 구하는 것이 목표입니다. 드림핵 강의 중 error based b..

    [Lord of SQLInjection] iron_golem write-up

    [Lord of SQLInjection] iron_golem write-up

    문제의 소스 코드입니다. error based blind sql injection 문제입니다. pw를 정확하게 구하는 것이 목표입니다. 드림핵 강의 중 error based blind sql injection에 관한 내용이 나옵니다. if 문의 조건이 참이 되면 mysql의 double 자료형 최대값을 초과하는 값(9e307*2)이 들어가면서 에러가 발생합니다 조건문에 원하는 구문을 넣어서 pw를 구할 수 있습니다. 파이썬 코드의 구조는 이전 xavis 문제와 같습니다. https://ssongkit.tistory.com/91 [Lord of SQLInjection] xavis write-up 문제의 소스 코드입니다. admin의 pw를 구하면 문제가 풀립니다. 이것 저것 해보다 알게 된 것이 멀티바이트..