WriteUp/Webhacking.kr

    webhacking.kr : challenge 12

    webhacking.kr : challenge 12

    javascript 난독화 문제다. 우선 난독화 해제부터 해보자. 콘솔창에 난독화부분을 복사해서 붙여넣기해주면 에러가 뜬다. ( function anonymous() { var enco=''; //var 는 변수선언 var enco2=126; var enco3=33; var ck=document.URL.substr(document.URL.indexOf('=')); // ck = / for(i=1;i

    webhacking.kr : challenge 8

    돌아가는 순서를 파악해 보고 뭐를 할지를 생각해 보자 agent 변수에 웹사이트를 접속한 CPU의 웹브라우저 정보를 저장 ip 에 접속자의 ip정보를 저장 agent 변수에 from 이라는 값이 있으면 필터링. -> access denied db 변수에 db연결정보저장 count_ck 변수에 array 값 가져온거 저장 배열의 0번째 인덱스의 크기가 70 이상이면 -> delete from chall8 뭘 지운다는 건지 모르겠다. result 변수에 query 저장 ck 변수에 result 에 대한 arr 가져옴 ck 변수의 값이 존재한다면 hi _____ 출력 ck[0]이 admin이면 문제 해결 ck 변수에 값이 들어있지 않다면 done! 출력 q 변수이용해서 정보 집어넣거나, query error ..

    webhacking.kr : challenge 7

    Admin page 딱 써있고 auth 라는 버튼이 있다. 소스를 보자 val 이라는 변수를 get 방식으로 가져오고 go 변수에 저장 아무값도 안넣으면 초기값으로 돌아가고, 필터링해서 go 변수에 2,-, +,from , _ , = , \\s, \*. \ 가 있으면 access denied!가나옴 이외의 경우에는 db에 접속한다. 접속할 때 rand라는 random 변수에 들어가는데 ( )의 개수가 다른거 빼고는 다 똑같다. 저거를 이용해야 하는 문제겠지. 어느 rand를 가져오던지 result 값을 가져오게 되어있다. 그걸 data 변수에 저장한다. data[0]이 1인 경우에 alert 창으로 Access_Denied가 뜨고, data[0]이 존재하지 않으면 나가고, data[0]이 2인 경우에 문..

    webhacking.kr : challenge 6

    소스를 보면 상당히 길다. 입력받는 id 랑 pw 값을 replace 함수에 의해서 바뀌는 거같다. id : guest pw : 123qwe str_replace 함수가 있는데 첫인자는 변경대상의 문자 두번째 인자는 변경하려는문자, 세번째 인자는 replace 가 바꾸고자 하는 문자열. 즉 1번째인자를 2번째 인자로 다 바꾼다는 뜻이다. 여기서는 기존의 숫자를 다 쉬프트 누른 값으로 바꾸는 거같은데 결론적으로 decode_id = "admin" , decode_pw ="nimda" 일 경우에 성공한다. val_id 랑 val _pw 의 경우 는 먼저 20번 인코딩하는데, base64로 한다. 또 setcookie 함수는 setcookie( 쿠키이름, 쿠키값, 만료시간, 경로, 도메인); 밑에 디코딩 있네..

    webhacking.kr : challenge 5

    회원가입과 로그인 버튼이 있다. 먼저 아무 아이디로 회원가입을 해보자 회원가입이 막혀있다. 그럼 로그인을 먼저 해보자 sql injection 같다. 로그인도 안된다. guest 로그인조차 되지 않는것 같으니 Blind sql injection 인가? 몰라 로그인이 안된다. login.php대신에 join.php를 쳤더니 들어가진다. 참 찍기의 영역이다. 코드가 난독화 되어있는데 복호화하면 다음과같다. l = 'a'; ll = 'b'; lll = 'c'; llll = 'd'; lllll = 'e'; llllll = 'f'; lllllll = 'g'; llllllll = 'h'; lllllllll = 'i'; llllllllll = 'j'; lllllllllll = 'k'; llllllllllll = 'l..

    webhacking.kr : challenge 4

    문제를 봅시다. 계속 바뀌는 코드가 주어지고, password를 입력해서 제출해야 하는 문제이다. Post 방식으로 입력된 key 라는 변수의 값과,(아마 pw 제출이겠지) Session 변수중 chall4의 값이 같으면 해결되는 문제이다. hash 변수는 10000000 에서 99999999 까지 한숫자를 고르고, 그 뒤에 salt_for_you 라는 문자열을 붙이는 것이다. Session['chall4']의 값은 hash 변수의 값이다. 또 sha1으로 500번 hash 변수를 해슁해주면 그게 최종적인 hash 변수의 값이다. 그리고 그 hash 변수를출력한게 화면에 나오는 값이다. random 숫자와 문자열을 붙인 값이 필요한 것이다. 문자열 값은 아니까 random 숫자만 파악해 볼수 있도록 하면..

    challenge 57 (600pt)

    challenge 57 (600pt)

    입력창이 존재한다. 소스코드를 주었으니 한번 보면 되겠다.

    Challenge 18 (100pt)

    Challenge 18 (100pt)

    sql injection 문제다. 제출링크가 있고 get 방식으로 no라는 변수에 넘겨준다는 것을 확인할 수 있다. 밑에줄에는 result 도 출력해준다. 소스를 한번 보자. SQL INJECTION RESULT

    Challenge 26 (100pt)

    Challenge 26 (100pt)

    view-source Get['id'] 값이 admin이면 문제가 풀린다. 그대로 admin을 넣어주게 되면, if문의 preg_match에서 걸린다. $_GET['id'] 를 urlencode 해준다. urlencode 해준 값이 admin이 되어야 하기 때문에 admin=%61%64%6d%69%6e 이다. 이걸 한번 더 인코딩 해주기 때문에, %61%64%6d%69%6e를 변환해서 ?id=%2561%2564%256d%2569%256e 이렇게 넣어주면 된다. clear!

    Challenge 38 (100pt)

    Challenge 38 (100pt)

    POST 방식으로 입력받는 창이 존재한다. 어쩌라는 건지 감이 안온다. 소스페이지를 보자 LOG INJECTION 저기 admin 페이지의 존재를 주석에서 말해주고 있다. 일단 입력값으로 준다는 것 말고는 별다른게 없어보이니까 admin 페이지로 가보자. admin으로 로그인 해야 된다고 설명에 나와있다. 이전 페이지로 가서 admin을 입력해보자. -> you are not admin 이라는 문구가 뜬다. admin을 입력값으로 받지 못하는거 같은데, 입력값을 다음과 같이 주면 되겠당 아무값.....+개행+ip+admin 개행값을 고민하고 있는데, \n %0a 같은 문자들이 먹히지 않는다. 그래서 input 창의 태그값을 textarea 로 바꾼 뒤, 개행을 넣어서 입력해 주었다. 그리고 admin 페..