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

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)
  • 방명록

Los (46)
Lord Of SQL injection 30단계-ouroboros

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 30단계 소스코드이다. prob, _, ., rollup, join, @이 필터링당했다. 무엇을 필터링한 건지 간단하게만 정리한다. 1. rollup //group by와 함께 쓰이며 구분된 결과의 합을 출력해준다. 2. join // 둘 이상의 테이블을 연결해서 데이터를 검색하며, 적어도 하나의 동일한 칼럼을 공유해야 한다. pw를 파라미터로 받으며 파라미터 pw값과 질의 pw 값이 같아야 문제는 해결된다. 사실 여기서부터 이문제는 자력으로 풀 수 없겠구나.. 생각했다. 혹시나 해서? pw=1'||pw like '%25%25' --+- 로 문제를 해결해보려 했지만 역시나 실패했다. 바로 인터넷 힘을 빌려보니 답은 qu..

SQL injection/lord of SQL 2022. 1. 24. 18:44
Lord Of SQL injection 29단계-phantom

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 29단계 소스코드이다. 모르는 함수가 있다. 문제를 풀기에 앞서 정리부터 해보자. $_SERVERP [REMOTE_ADDR] // 웹서버에 접속한 사용자의 ip를 갖고 있다. ex) 127.0.0.1 on duplicate key update // sql에서 데이터 안에 있는 값을 수정할 수 있다. 자세한 설명은 링크를 첨부한다. https://sdevstudy.tistory.com/12 [MySQL]값이 없으면 Insert, 값이 있으면 Update - on duplicate key update INTRO 테이블을 생성 후, 중복 저장을 막기 위해 name에 unique키를 등록한다. 데이터베이스에서 대량의 데이터를 ..

SQL injection/lord of SQL 2022. 1. 23. 03:33
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
이전 1 2 3 4 5 6 다음
이전 다음
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • Los
  • 기술스택
  • 상속
  • 김영한 실전 자바 중급
  • webhacking.kr
  • 김영한 실전 자바 기본
  • 백준
  • 백준 피보나치 수열
  • extends
  • ys.k
  • 김영한 실전 자바 기초
  • 자바
  • 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
  • 백준 피보나치
  • samron
  • los 15단계
  • 코딩테스트
  • java
  • 상품을 구매한 회원 비율 구하기 파이썬
  • lord of sql
  • samron3
  • zixem
  • los 15
  • 코딩테스트 준비
  • spring
  • 김영한
  • static
  • 스프링
  • 프로그래머스
  • 프로그래머스 상품을 구매한 회원 비율 구하기
more
«   2025/05   »
일 월 화 수 목 금 토
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

티스토리툴바