LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 32단계 소스코드이다. 쿼리가 두 개 있고 파라미터는 no를 받으며 admin, and, or, if, coalesce, case, _, prob, time 등이 대소문자 구분 없이 필터링되어있다. 또한 query2는 query1과 달리 no에 싱글 쿼터 처리가 되어있다. 문제를 해결하기 위해 4개의 조건을 만족해야 한다. 각 조건은 1. query1 = admin 2. query1 != admin 3. query2 != admin 4. query2 = admin 이다. 처음엔 이게 무슨 말인지 몰라서 조금 시도하다 인터넷 검색을 했다. 1,3 2,4 조건이 같이 실행된다. (추측) 정답은 시간에 따라 id의 값을 바꿔..
LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 31단계 소스코드이다. 30번 문제와 비슷한 소스코드이지만 필터링 목록에 ace가 추가되었다. quine을 사용하지 못하도록 했다. 하지만 이번엔 언더바와 온점이 빠져있다. _, . 그렇다. 이문제는 information_schema.를 사용하는 문제다. 문제의 해결조건은 역시 pw파라미터값과 테이블내부의 값과 같아야한다. pw파라미터에 정상적으로 1을 줬을 때 아무 출력값도 없다. 참값을 줘도 아무 출력값이 없다. union을 통해 입력하니 Pw : 1 이라는 결과 값이 출력되었다. 쿼리: ?pw='union select info from information.schema.processlist--+- 를 통해 Pw에 ..
LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다. 30단계 소스코드이다. prob, _, ., rollup, join, @이 필터링당했다. 무엇을 필터링한 건지 간단하게만 정리한다. 1. rollup //group by와 함께 쓰이며 구분된 결과의 합을 출력해준다. 2. join // 둘 이상의 테이블을 연결해서 데이터를 검색하며, 적어도 하나의 동일한 칼럼을 공유해야 한다. pw를 파라미터로 받으며 파라미터 pw값과 질의 pw 값이 같아야 문제는 해결된다. 사실 여기서부터 이문제는 자력으로 풀 수 없겠구나.. 생각했다. 혹시나 해서? pw=1'||pw like '%25%25' --+- 로 문제를 해결해보려 했지만 역시나 실패했다. 바로 인터넷 힘을 빌려보니 답은 qu..
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키를 등록한다. 데이터베이스에서 대량의 데이터를 ..
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등을 사용할 수 없게되어 괄호없이 에러를 유발할 수 있는..
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초 동안 재우 고 거짓이면 아무 값이나 넣어 준..
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를 넣으면 정상적으..
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..
- Total
- Today
- Yesterday
- spring
- samron3
- los 15단계
- 스프링
- 자바
- 김영한
- 김영한 실전 자바 중급
- 상속
- 코딩테스트 준비
- 기술스택
- 백준 피보나치 수열
- 프로그래머스 상품을 구매한 회원 비율 구하기
- java
- lord of sql
- static
- extends
- 코딩테스트
- 김영한 실전 자바 기본
- 김영한 실전 자바 기초
- los 15
- ys.k
- zixem
- 상품을 구매한 회원 비율 구하기 파이썬
- 프로그래머스
- webhacking.kr
- 백준 피보나치
- samron
- Los
- 백준
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |