일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 홍혜걸
- libtins
- 해킹
- 고민정
- 스페인 코로나
- 성남 코로나 확진자
- 양적완화
- 최강욱
- 유튜버 김재석
- 픽크루
- 은혜의 강 교회
- 학교 개학 연기 4월
- 불가피
- 이상형 만들기
- 김영권 아내
- 킹덤 고근희
- 조희연
- 김재석
- 스콜피온킹
- 금리인하
- 리리남매
- 김영권
- 뭉쳐야 찬다
- 미국 금리인하
- 이태원 클라쓰 15회 예고
- 성남은혜의강교회
- 임영규
- 제넥신
- 폰폰테스트
- 이지혜
- Today
- Total
목록전체 글 (256)
Dork's port
기존 블라인드 인젝션 코드를 실행 시켜보니 모든 경우에서 참이 리턴되는데, 정상적인 코드인데 불구하고 이러는 것을 보면 왠지 패스워드가 ASCII가 아닌 utf8 등등일 것 같은데... 삽질중. CHAR_LENGTH 쓰려니 언더바 필터걸리네 생각을 달리해서 CHAR 함수를 이용해서 힌트를 얻고자 했다. ASCII를 제외한 유니코드 등을 이용하면 CHAR 함수 사용시 1바이트가 리턴되는 것이아닌 캐릭터셋에 맞는 바이트가 리턴될것이라고 생각 (utf8이던 ASCII이던 CHAR함수가 1바이트씩 읽는 함수라면 그냥 기존 범위를 0x20 - 0x7f가 아닌 0x00 - 0xff로 해서 비교하면 되니 그것도 그것대로 작동할 것이라고 생각했으나, 정상적으로 동작하지 않는 것 같아 위와같이 유추 하였음) 따라서 해보..
푸는데 생각보다 오래걸렸던 문제네요 :) 6자 이내로 pw의 조건을 참으로 바꾸고 뒤에 and id!='admin'을 우회해야 하는 문제입니다. 6자 이내가 아니였다면 조금더 쉬웠을 것 같은데.. or 1 만 생각하는 사고에 갇혀서 조금 헤맸네요 :) mysql 서버를 구축하여 이래저래 해보다가 pw=('')의 값이 리턴 값의 형태일 것이라고 유추하여 연산자를 이용해서 비교해보니 참이 아닐때는 0값을 리턴하더라구요 :) 그래서 pw=('')=0과 같이 and 이전의 값을 true로 셋팅해주었습니다. 그리고 이제 뒤의 and를 주석처리해야해야하는데 # (%23)이나 --가 필터링 되어있습니다. mysql에서 테스트 하던 도중 세미콜론을 이용하여 문장의 끝을 가르킨다는 것에 착안하여 ';'를 해봤지만 실패...
이번 문제는 ereg취약점을 이용한 우회가 핵심인 문제입니다. php코드를 보는데 ereg만 따로 저렇게 처리되어있는 부분이 의문이여서 구글링을 해보니 취약점이 있더라구요! 취약점은 맨처음이 null byte로 시작할 경우 문자열의 끝으로 처리하여 그 이후부분은 filter를 하지 않는 취약점이 있네요. 따라서 아래처럼 쿼리문을 작성하면 됩니다! 다만 쿼리문 작성시 %00을 앞에 넣어 취약점 공략을 해주셔야 해요!