본문 바로가기 메뉴 바로가기

hdd

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

hdd

검색하기 폼
  • 분류 전체보기 (329)
    • 암호학 (1)
    • SQL injection (117)
      • lord of SQL (50)
      • injection 문법 (2)
      • Zixem (10)
      • webhacking (55)
    • MySQL (1)
    • 백준 (121)
    • 코딩테스트 (2)
    • 백지 (4)
    • 프로그래머스 (45)
    • 기술스택 (34)
      • 자바(Spring) (34)
      • DataBase (0)
    • CS(Coumpter Science) (1)
    • 일기 (3)
  • 방명록

SQL injection (117)
Lord Of SQL injection 28단계-frankenstein

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 28단계 소스코드이다. pw에 prob, _,., (, ), union, 등의 문자열들이 필터링되고 있다. 소괄호가 필터링되어 여러 함수들을 사용할 수 없게 되었다. ex) sleep(), substr() 문제 해결조건은 admin의 pw값을 입력하면 된다. pw를 찾기 위해 함수를 우회할 방법부터 찾아보자. 1. if(조건) -> case when 조건 then 참, 거짓 end ex) if(a>b,1,2) -> case when a>b then 1 else 2 end 하지만 이번쿼리에서는 참과 거짓을 구분해야하는데 sleep(), benchmark(),union등을 사용할 수 없게되어 괄호없이 에러를 유발할 수 있는..

SQL injection/lord of SQL 2022. 1. 22. 03:29
Lord Of SQL injection 27단계-blue dragon

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 27단계 소스코드이다. 이번 문제는 id와 pw를 둘 다 입력받으며 각각 싱글 쿼터, 역 슬래쉬, prob, _,. 이 필터링되어있다. 그리고 admin의 pw값을 입력해주면 문제는 해결된다. 이번 문제에서 유심히 봐야 할 점은 싱글 쿼터와 역 슬래쉬는 쿼리가 실행된 후에 필터링이 된다는 것이다. 시간 기반 문제이다. 바로 풀어보겠다. pw의 길이를 알아낸다. 쿼리 :? id=\&pw=||if(id='admin'and(length(pw)>1), sleep(3),2)--+- ㄴid에\를 넣어 싱글 쿼터 우회를 시켜주고 pw파라미터에 admin의 비밀번호 길이가 1보다 크면 3초 동안 재우 고 거짓이면 아무 값이나 넣어 준..

SQL injection/lord of SQL 2022. 1. 20. 18:18
Lord Of SQL injection 26단계-red_dragon

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 26단계 소스코드이다. 파라미터로 id와 no값을 받는다. id는 7글자가 넘으면 안 되며 no는 삼항 연산자와 is_numeric 함수로 데이터 타입이 숫자형이면 그대로 값을 주고 숫자형이 아니면 1로 값을 고정시켜준다. 1. 삼항 연산자 : (조건)?a:b // 조건이 참이면 a를 반환하고 거짓이면 b를 반환한다. 2. is_numeric(a) // a가 숫자이면 true를 반환하고, 아니면 false를 반환한다. 문제 해결 조건은 admin의 no값을 올바르게 넣으면 된다. 이번 문제도 인터넷의 힘을 빌렸다... 처음엔 no뒤에 hex방식 등으로 삽입하는 줄 알았는데 작동하지 않았다. no값에 2를 넣으면 정상적으..

SQL injection/lord of SQL 2022. 1. 15. 20:10
Lord Of SQL injection 25단계-green_dragon

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 25단계 소스코드이다. id와 pw둘다 같은 내용인 ', ",., prob, _ 가 필터링되어있다. 싱글 쿼터와 더블 쿼터 우회 문제인 것 같다. 사실 이제 문제에 대해서 감도 안 와서 조금 시도해보다가 그냥 인터넷 검색했다. 일단 los 16단계에서의 내용으로 싱글 쿼터를 우회하였다. https://samron.tistory.com/18 Lord Of SQL injection 16단계-succubus LOS 포스팅에 앞서 틀린 내용이 있을 것이며, 댓글을 통해 가르쳐 주시면 굉장히 감사하겠습니다. 15단계 소스코드이다. 이번엔 id와 pw에 싱글 쿼터 하나만 필터링되어있다. id값이 데이 samron.tistory.c..

SQL injection/lord of SQL 2022. 1. 15. 18:41
Lord Of SQL injection 24단계-evil_wizard

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 24단계 소스코드이다. 23번 문제와 굉장히 유사하다. 이번엔 sleep, 와 benchmark함수 등을 필터링하였다. 이는 시간 기반 공격을 막기 위한 것으로 추측된다. 하지만 if가 필터링되지 않았기에 공격 가능하다. 일단 참과 거짓을 구분할 수 있는 포인트를 찾는 게 중요하다. order by에 칼럼수 이하의 수를 집어넣었을 때 정상적으로 데이터가 출력되지만 4를 집어넣으니 아무 결과도 출력되지 않는다. 이 점을 이용해 문제를 풀어보겠다. 일단 email의 길이부터 추출한다. email의 길이는 정상적인 상황이라면 무조건 1보다는 클 거니까... 정상적으로 데이터가 출력되었다. 거짓인 조건을 넣었을 때 데이터가 출..

SQL injection/lord of SQL 2022. 1. 15. 02:45
Lord Of SQL injection 23단계-hell fire

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 23단계 소스코드이다. 이번엔 union과 proc가 필터링되었다. 이번 문제는 파라미터에 order by절이 들어가 있다. 1.order by n // n번째 칼럼의 오름차순으로 정렬하고, 전체 칼럼이 n개보다 작으면 오류가 생긴다. 에러를 출력하지 않으니 시간지연 기반 sql 이 먹힐 거라는 걸 추측할 수 있다. 일단 문제해결 조건은 admin에 해당하는 email 값을 넣으면 문제가 해결된다. 일단 email의 길이부터 알아내야한다. query : ?order=if(id='admin'and(length(email)=28),sleep(2),1) // id=admin이고 email의 길이가 28이면 2초동안 멈춘다. ..

SQL injection/lord of SQL 2022. 1. 14. 00:00
Lord Of SQL injection 22단계-dark_eyes

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 22단계 소스코드이다. 이번엔 21단계에 이어서 col, if, case, when가 추가로 필터링 되었다. 그리고 pw 값에 admin의 pw와 일치하는 값을 넣으면 문제는 해결된다. 조건문들을 사용하지 못하게 한것같다. 그리고 exit() 함수에 db에러를 출력해주는 변수가 빠졌다. 이번에는 에러문을 아무것도 출력해주지 않는다. 하지만 필터링된 문자를 보고 strcmp() 함수가 생각났다. 1. strcmp(a,b) // a와 b의 값을 비교해서 ab 0보다 큰값을 반환한다. 하지만 이함수는 이문제를 해결하는데 사용될 순 있지만 필요가 없었다. 그리고 새로운걸 배웠다. select a where에서 where절이 i..

SQL injection/lord of SQL 2022. 1. 13. 20:10
Lord Of SQL injection 21단계-iron_golem

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 21단계 소스코드이다. pw 파라미터에 sleep, benchmark 등의 함수가 필터링 된걸 볼 수 있고, 문제 해결조건은 pw에 admin의 pw 값을 넣으면 해결된다. 일단 필터링된 두 함수의 기능부터 알아보자. 1. sleep(n) // sql에서 where 뒤에 호출되며 괄호안의 숫자(초) 만큼 지연시킨다. ex) sleep(3) -> 3초 지연 2. benchmark(a,b) // a는 돌릴 횟수 이며 b는 수행할 함수이다. ex) select benchmark(10000,2+2) ->2+2를 만번한다. 또 이번엔 exit(mysqli_error)를 통해 에러가 생기면 해당 에러를 페이지에 반환해준다. 이 문..

SQL injection/lord of SQL 2022. 1. 12. 23:43
이전 1 ··· 9 10 11 12 13 14 15 다음
이전 다음
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 김영한 실전 자바 기본
  • los 15단계
  • 김영한
  • 프로그래머스 상품을 구매한 회원 비율 구하기
  • 스프링
  • 상품을 구매한 회원 비율 구하기 파이썬
  • 자바
  • samron
  • 상속
  • 프로그래머스
  • java
  • Los
  • lord of sql
  • spring
  • 김영한 실전 자바 기초
  • 기술스택
  • zixem
  • 백준
  • extends
  • 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
  • static
  • los 15
  • 코딩테스트 준비
  • 코딩테스트
  • 백준 피보나치 수열
  • ys.k
  • 백준 피보나치
  • samron3
  • 김영한 실전 자바 중급
  • webhacking.kr
more
«   2025/08   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함
250x250

Blog is powered by Tistory / Designed by Tistory

티스토리툴바