본문 바로가기

전체 글847

Webhacking.kr 4번 Base64로 디코딩 후 MD5rainbow table 을 이용하여 복호화 해주면 답이 나온다. 2014. 4. 13.
lpad , conv 를 이용한 BlindSQL Injection * ascii, char, between, and, or 등이 막혀 있을 경우나 기타 잘 알려진 함수들이 필터링 되는 경우 대체방법 으로 lpad 함수, conv 함수를 이용할수 있다. lpad 는 지정한 문자로 자릿수를 채워주는 역할을 하며, conv 함수는 진법 변환을 해준다. 인젝션을 많이 해본 사람은 이제 감이 올 것이다. 쿼리 결과를 1 또는 0으로 만드는 것이 BlindSQL Injection 의 핵심인데, conv('문자',16,2) 로 1과 0으로 이루어진 2진수로 만들고, lpad 로 8자리로 맞춰 주는 것이다. 결론적으로 'A' 를 아래와 같이 0과 1만으로 표현할 수 있다. mysql> select lpad(conv(hex(substr('a',1,1)),16,2),8,0) from t.. 2014. 4. 13.
SQL Injection - Select 필터링(PROCEDURE ANALYSE()) 출처 : http://hyunmini.tistory.com/46 MySQL 에서 발생할 수 있는 특이한 인젝션 기법을 알게 되어서 포스팅 합니다. 워게임 사이트 문제 풀다 알게 된 것이고...어느정도 웹해킹에 대해선 자신있어 했던게 부끄럽네요. ^^; 더욱 열심히 공부해야 겠습니다. 요지는 select 키워드가 필터링 될때, 어떻게 필드명을 알아낼 수 있을까 라는 것에 대한 것입니다. select 가 필터링 되면 information_schema.tables 나 columns 에서 쿼리를 할 수 없습니다. 이 문제에선 ","(콤마) 와 작은 따옴표까지 필터링 되고 있어서 더욱 쉽지 않습니다. 삽질을 좀 하다가 구글링을 통해 mysql 함수중 하나인 procedure analyze() 함수를 알게 되었습니.. 2014. 4. 12.
Webhacking.kr 3번 해당 문제에 접속하면 네모네모 로직이 뜬다. 문제를 풀어준 후 입력칸과 Go 라는 버튼이 보인다. a 라는 값을 넣고 전송해주니 name : a answer : 1010100000011100101011111 ip : 라고 뜬다. 소스를 확인해봤다. name : POST 방식으로 answer 와 id의 값을 넘겨준다. 웹 프록시를 사용하여 넘기는 값을 확인해봤더니 answer=101010~&id= 와 같은 형식이다. answer와 id의 값이 정해진 값과 일치해야 답을 뿌려줄 듯 하다. 기본적인 우회방법으로 필터링을 우회하면 풀린다. 2014. 4. 12.
Webhacking.kr 2번 소스를 확인해본다. admin 이란 페이지를 찾았다. 쿠키를 확인해보면 time 이라는 값이 있다. 이 부분이 Injection 포인트가 되며 소스값에 주석으로 표시되는 시간값이 참/거짓을 알 수 있는 부분이 된다. time=1397298833 뒤에 and 1=1 과 1=2 를 넣어서 참/거짓일 때의 서버반응을 확인해보았다. 1. 참 일때의 반응 2. 거짓 일때의 반응 참과 거짓일때의 반응을 확인했다. 이제 테이블명과 컬럼명을 알아내야 하는데 이부분에는 게싱이 필요하다. 이 부분에서 상당히 헤매다가 admin 페이지 라면 테이블 명도 admin 이라고 생각을 하였고 패스워드 컬럼명은 당연히 password 라고 생각을 하고 Injecton 을 시작하였다. time=1397298833 and (select.. 2014. 4. 12.
Webhacking.kr 1번 index.phps 를 접속하여 소스를 확인해보았다. 중간쯤 if($_COOKIE[user_lv]>=6) $_COOKIE[user_lv]=1; : user_lv 쿠키가 6이거나 보다크면 1로 설정한다. 그다음 if($_COOKIE[user_lv]>5) @solve(); : user_lv 쿠키가 5보다 크면 답을 뿌리는 형식입니다. 6보다 크게 설정해주면 1로 초기화되므로 5~6 사이에 있는 값으로 user_lv 쿠키를 설정해주면 됩니다. 2014. 4. 12.