본문 바로가기

웹해킹

webhacking.kr(old) 47번 47번을 들어갔더니 이렇게 send하는 부분이 보인다. 한번 send를 눌러보겠다. 메일이 보내졌다는 것 같다. 받는 사람은 no-existed@webhacking.kr이다. 이걸 내 이메일로 바꿔야할 것 같은데, 이걸 어떻게 해야 하나 고민했다. 근데 검색을 해보니, Cc를 통해 참조를 추가할 수 있는 듯 했다. 근데 내 이메일을 넣어도 다시 원래대로 있던 문자열로 바뀜을 확인했다. 그래서 원래 subject인 input을 textarea로 바꿨다. 이제 바꾼 textarea에 아무거나 넣고 밑에 참조를 뜻하는 Cc를 넣고, 내가 메일을 확인할 수 있는 이메일주소를 넣는다. 그럼 이렇게 메일이 잘 왔음을 확인할 수 있다. 그럼 이렇게 받은 FLAG를 AUTH에 입력해본다. 잘 풀림을 확인했다. 더보기
webhacking.kr(old) 38번 LOG INJECTION에 관한 문제이다. 그냥 기본적으로 사용되는 ''or1=1을 넣었는데 입력만 되고, 딱히 다른 반응은 없다. 코드를 확인해보니, admin.php로 가라는 듯 하다. 그래서 맨 위처럼 검색하여 admin.php를 살펴보았다. admin으로 로그인해야 하고, 밑에 [ip주소] : [입력한 값] 형태로 나옴을 확인했다. 입력한 값을 'admin'으로 바꾸어야 할 것이다. 그냥 곧바로 admin을 쳤는데, 나보고 '너는 admin이 아니다'라고 하는 것을 확인했다. 그래서 그냥 아무거나 다 넣고 검색해보았다. 그럼 결과가 이렇게 쌓이는데, CRLF가 생각난다. CRLF에 대한 정보는 이러하다. https://jhgoo1398.tistory.com/entry/CRLF-Injection /.. 더보기
webhacking.kr(old) 32번 31번 문제를 들어가보면 이렇게 인기순위? 비스무리한 창이 나온다. 이게 뭔가 하고 멍을 때리다가 아무거나 눌러보았다. 나는 2순위의 inchang21를 눌러봤는데 hit가 하나 올라감을 확인했다. 한번 더 다른 거나, 같은 걸 눌러봤다. 이미 투표가 되었다고 한다. editThisCookie를 통해 쿠키를 확인해보니, vote_check가 되어있음을 확인했다. 표시한 휴지통 부분을 계속 눌렀다 투표했다 눌렀다 투표하다를 반복하니, 너무 비효율적임이 느껴졌다. 그래서 표시한 부분을 누르도록 했다. 이는 금지로, 휴지통을 계속 누를 필요가 없다. 그럼 이 창이 뜨는데, 여기서 값으로 차단을 누르고, 이 규칙 더하기를 누르면, '이미 투표가 되었다'란 메시지는 뜨지 않는다. 근데 그 후 어떻게 해야 하는지 .. 더보기
webhacking.kr(old) 7번 Admin page라고 한다. Auth를 눌러보니 access denied라고 한다. 소스를 확인해보면 GET방식으로 받은 값을 go에 저장하고 preg match를 통해 '2', '+', '=', 'from' 등이 필터링됨을 확인할 수 있다. rand를 통해 계속 어떤 작업을 하는 듯 하고, 마지막에 data[0]의 값이 2이면 풀리는 문제인 듯 하다. go 의 값에 2라는 값을 넣어주어서 lv를 2로 만들어주면 풀릴 것 같다. 근데 필터링되는 게 꽤 있어서, 어떻게 2를 표현할 것인지 고민해야 한다. 2도 필터링되고 마지막 주석문(#)에 문제가 있는 듯 했다. 그래서 val에 아무값이나 넣고, union과 select문을 통해 문제를 풀었다. 2는 ASCII값으로 50이기 때문에 char(50)을 사.. 더보기
webhacking.kr(old) 3번 Nanogram에 대해 나온다. 이게 뭔지 진짜 감도 안 잡혔다.. 근데 글자가 쓰인 안쪽을 하나 눌러보니 저렇게 검정색이 됨을 확인할 수 있었다. 다들 감을 잡았겠지만, 이는 스도쿠임을 확인할 수 있다. 예를 들어 저기 5가 있다. 옆에 5칸으로 이루어져있으므로 5칸을 모두 칠하면 된다. 1,1로 되어 있으면 띄어서 1칸 1칸을 각각 채우는 것이다. 저렇게 solve를 하면 clear된다. 이제 clear!이라고 하며, log에 대한 나의 이름을 쓰라고 한다. 나는 그냥 hi로 했다. 나는 블로그 글 쓰려고 한번 더 시도했는데, 저렇게 2개가 나옴을 확인할 수 있다. 친절하게 answer이 나오니, 이를 복사하고 넣어보도록 한다. 이름을 넣는 곳에 그냥 답을 넣어봤더니 저렇게 3개가 되었다. 그냥 해본.. 더보기
webhacking.kr(old) 37번 - 실패 파일을 제출할 수 있다고 뜬다. 밑에 rm -rf ./tmp/*가 있는 걸 보니 뭔가 쉘로 명령어를 쳐야하는 듯 하다. 127.0.0.1 IP에서 파일을 오픈하고, , . , /, 를 없앤다고 한다. $request = "GET /?{$flag} HTTP/1.0\r\n"; $request .= "Host: {$host}\r\n"; $request .= "\r\n"; 가 있는 것을 보니, 네트워크 관련 작업을 함이 확실하다. $socket = fsockopen($host,7777,$errstr,$errno,1); fputs($socket,$request); fclose($socket); if(count($dirList) > 20) system("rm -rf ./tmp/*"); 를 보니, 7777번 포트로 .. 더보기
webhacking.kr(old) 8번 HTTP_USER_AGENT에 addslash를 하고, ck=mysqli_fetch_array($result)임을 확인할 수 있다. 밑에 if문을 보아, SQL Injection 관련 문제인 듯 하다. $ck[0]의 값이 admin이어야 문제가 풀리는 듯 하다. 근데 처음 들어왔을 때 화면처럼 현재는 guest이기 때문에 admin으로 바꿔 풀어야 한다. insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest'); 를 이용해 풀도록 하겠다. 일단 프록시 사용을 위해 설정을 해놓는다. 이를 사용으로 바꾸고, burp-suite를 사용한다. 프록시 서버를 사용으로 바꾼 후, 해당 문제 사이트에 들어가도록 한다. 안 들어가지는 것을 확인할 수 있을 .. 더보기
webhacking.kr(old) 12번 javascript challenge관련 문제인 듯 하다. f12를 눌러 보니, 이모티콘이 많다. 밑부분까지 보니, 이모티콘으로 가득 찼음을 확인할 수 있다. 검색을 해보니 이 encode는 맨 밑의 aaencode와 관련된 문제인 듯 하다. 그래서 aaencode decode를 검색해 아래의 사이트로 들어갔다. 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. (゚Д゚) ['_'] Enter ... .. 더보기