본문 바로가기

반응형

웹해킹/webhacking.kr

(58)
webhacking.kr old 33번 문제풀이(Writeup) webhacking.kr old 33번 문제풀이(Writeup) 1 문제를 들어가면 위와 같이 출력된다. 33-1을 보니 뭔가 1도 있고 2도 있을 것으로 보인다. 코드를 확인해보자. ?get=hehe이면 Next가 나온다고 한다. 확인해봤다. Next가 나왔다. 클릭해봤다. 2 lv2.php로 이동했다. 뭔가 흥미로운 문제인 것 같다. 재밌다. 코드를 확인해보자. 이번엔 post 방식으로 post가 hehe이고 post2는 hehe2로 전송해야 한다. Burp Suite로 전송해봤다. Burp Suite에서 캡처한 후 마우스 우클릭 -> change requests method가 있다. 클릭해서 post 방식으로 바꿔주고 post와 post2를 포함해서 넣어준다. 3 Next가 나왔고 클릭하니 chal..
webhacking.kr old 42번 문제풀이(Writeup) webhacking.kr old 42번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 들어가자 느낀 것이지만 File download 취약점을 이용한 문제로 보인다. 그래서 download를 둘 다 눌러봤는데 test.txt는 다운로드가 가능하지만 flag.docx는 다운로드가 되지 않는다. 코드를 확인해보자. 두 개의 링크를 보니까 test.txt는 web-20/?down=dGVzdC50eHQ= 라고 나온다. "dGVzdC50eHQ=" 이 부분이 인코딩 되어 있는 것 같아서 두 가지를 확인해봤다. 처음엔 URL 디코더로 디코딩하니 나오지 않는다. 그래서 base64로 디코딩해봤다. 찾았다. 링크를 base64로 인코딩해서 사용했던 것이다. 그래서 flag.docx를 base64로 인코딩..
webhacking.kr old 09번 문제풀이(Writeup) webhacking.kr old 09번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 궁금하니까 1, 2, 3을 눌러보고 Password도 제출해봤다. 1, 2 까지는 ID가 각각 apple과 banana가 나온다. 이후 3을 클릭하니 ID가 Secret으로 나오고, Column 이름에 대해서 알려준다. 딱 봐도 SQL Injection 문제이다. password를 입력하니 get메소드로 pw가 전달되는 것으로 보인다. Password를 알아내려면 no=3에 ID를 알아내야 한다. 문제를 풀기 위해 이번엔 잘못된 입력값을 넣어봤다. apple은 no=1이지만 2를 넣어서 확인해보니 "Access Denied"가 출력된다. 이를 통해 Access Denied가 출력되면 잘못된 것임을 알았으..
webhacking.kr old 11번 문제풀이(Writeup) webhacking.kr old 11번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 코드를 확인해보자. 정규식 pat에 대한 문자열을 맞추면 해결될 것으로 보인다. 문제 해결을 위해 해당 정규식에 대해 알아보자. "/[1-3][a-f]{5}_.*211.206.236.4.*\tp\ta\ts\ts/" 1. [] : 문자 클래스 [] 사이의 문자들과 매치되어야 한다. 따라서 [1-3]은 "1, 2, 3"중 하나이다. [a-f]도 "a, b, c, d, e, f" 중 하나이다. 2. {m, n} 반복 {m, n}은 바로 앞 문자의 반복 횟수가 m 이상 n 이하인 무자를 말한다. 따라서 a{5}bc 인 경우 aaaaabc를 나타낸다. 3. .(dot) 정규 표현식의 .(dot)는 줄 바꿈 문자인..
webhacking.kr old 12번 문제풀이(Writeup) webhacking.kr old 12번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. javascript 문제라고 표기되어 있기에 한번 코드부터 천천히 확인해보자. 귀여운 이모티콘들이 보인다. 뭔가 긴 문장이 난독화되어 있는 것은 알겠다. 그럼 어떤 걸로 encode되어 있는지 찾아보니 캐릭터 코드 난독화라고 한다. https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html aadecode - Decode encoded-as-aaencode JavaScript program. ['_'] aadecode - Decode encoded-as-aaencode JavaScript program. (゚Д゚) ['_']..
webhacking.kr old 10번 문제풀이(Writeup) webhacking.kr old 10번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 뭔가 O를 Goal 지점까지 이동시켜야 해결될 것으로 보인다. 코드를 확인해보자. O 10번 줄에 보면 아주 의심스럽게 id가 hackme이다. 이 코드만 자세히 보면 될 것 같다. 보면 O에 마우스를 올려두면 yOu로 글자가 변경되고, 클릭하면 오른쪽으로 아주 조금씩 움직인다. 그래서 직접 누르기엔 귀찮으니 개발자 도구 - console에서 코드를 넣어서 움직여주겠다. ele = document.getElementById("hackme"); ele.style.left=1598; javascript에서 css 값 변경하는 방법을 검색해서 코드를 구성했다. 변수에 id가 hackme인 요소를 저장해서 요소..
webhacking.kr old 08번 문제풀이(Writeup). PHP getenv() 함수 설명 webhacking.kr old 08번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 이번에도 admin 계정으로 로그인이 필요해 보이는 문제이다. 코드를 확인해보자. 문제풀이의 핵심은 HTTP_USER_AGENT 값이 admin이 되어야 한다. 따라서 마지막 if문에 mysqli_query에서 user-agent값을 변경해서 admin으로 로그인하는 것이 중요하다. 이 문제도 지금까지 문제와 마찬가지로 SQL Injection으로 풀어야 하는 문제이다. PHP getenv() 함수 설명 getenv()는 내장함수로, 인자의 값에 따라 해당되는 환경변수 값을 알려주는 함수이다. getenv 사용방법 getenv("http_host") 홈페이지 주소값을 얻을 때 getenv("http_re..
webhacking.kr old 07번 문제풀이(Writeup) webhacking.kr old 07번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 코드를 확인했다. 가장 눈에 띄는 건 preg_match를 통해 몇 가지 문자가 필터링되고 있다. 그리고 mysql_query문이 나와있고 마지막 elseif로 가면 문제가 해결된다. 결론은 go 자리에 2를 넣어주면 해결될 것으로 보이는데, 2는 필터링되고 있고 +, -, * 도 필터링되기에 다른 방법으로 넣어줘야 할 것으로 보인다. 먼저 이것저것 실험을 했다. 괄호가 필터링이 안되고 char, ascii 등이 안되는 걸 보니 아스키코드로 2를 전달해도 좋을 것 같다. 그래서 union을 통해 var=0인 것과 2인 것을 함께 입력해보았다. select lv from chall7 where lv=($g..

728x90