본문 바로가기

CTF_78

[NeverLAN CTF2020] (Web) SQL Breaker [SQL Breaker] - 웹사이트에는 로그인 기능이 있다. - 기초적인 SQL Injection 구문을 날려보자. - 로그인이 되면서 flag가 나온다. 2020. 2. 15.
[NeverLAN CTF2020] (Web) Stop the Bot [Stop the Bot] - 웹사이트가 뜨며 아무 기능이 없다. - 문제가 Stop the Bot이여서 robots.txt로 들어가보니 flag가 있는 파일이 보인다. 2020. 2. 15.
[NeverLAN CTF2020] (Web) Cookie Monster [Cookie Monster] - 페이지에 들어가보니 이렇게만 적혀있었다. - 쿠키값을 확인해 보니 Red_Guy's_name이라는 쿠키가 있고, 값에 이름을 적는것 같다. - Red Guy가 누군지 궁금해서 구글링을 해봤다. 저 칭구의 이름은 Elmo라고 한다. - 쿠키값을 변경하고 새로고침을 하면 flag가 뜬다. 2020. 2. 15.
[webhacking.kr] old-48(350) 풀이 [old-48] - 들어가면 글과 파일을 올릴 수 있는 form이 있다. - 글을 올려보니 별 다른 것은 없었다. - 웹쉘인가 싶어서 shell.php를 올리고 한번 upload file을 통해 들어가 보았다. - 별 다른것은 없어보이고, GET방식으로 ls 를 보내도 아무 응답이 없다.- 그냥 코드 출력만 해주는 것 같다. - Delete를 누르면 ?mode=del&time=[글 작성 시간] 으로 이동하며, 파일이 삭제가 된다.- 전혀 몰라서 구글링을 해보니 del mode에서는 rm /upload/[내 파일명] 형태가 이루어 져서 내 파일이 삭제 된다고 한다.- rm /upload/[내 파일명] 이므로 명령어를 더 실행하기 위해서 ; 이나 & 이나 | 를 붙여서 뒤에 명령어를 더 써주면 된다. - 파.. 2020. 2. 3.
[webhacking.kr] old-47(150) 풀이 [old-47] mail header injection - 들어가면 이렇게 되어 있고, 코드도 특별한 것이 없다. - send 버튼을 누르자 위와 같은 화면이 뜬다.- Subject에 Flag of webhacking.kr old-47 chall이 들어간걸로 보아 Mail subject의 값을 변경해서 문제를 푸는것 같다.- mail header injection을 할 때, 보통은 Cc 를 이용하여 공격을 한다.- Cc 란 참조자로 만약 a 가 b에게 보낸다고 할 때, Cc : c@mail.com 을 추가한다면 c에게도 같은 메일이 가게 된다.- 위의 문제를 풀기 위해서는 우선 subject 부분을 두 줄 이상 쓸 수 있어야 한다. - 위와 같이 로 변경하여 두 줄을 입력하자. - 주의 해야 할 점은 C.. 2020. 2. 3.
[webhacking.kr] old-44(500) 풀이 [old-44] command injection - view-source를 눌러 코드를 보자. - $_POST['id']로 아이디를 받고 $id의 5글자를 system("echo 'hello! {$id}'");로 출력한다.- admin이란 글자를 입력하면, amdin이 출력된다. - 리눅스에서 두가지 명령어를 실행하려면 ; 또는 &붙이고 뒤에 명령어를 입력하면 된다.- system("echo 'hello! {$id}'"); 이므로 $id에 ';ls를 입력하면 system("echo'hello! ';ls ' ");가 되므로 뒤에 '하나가 비게 된다.- 따라서 끝에 '을 하나 더 붙여준다 $id에 ';ls'가 되면 실행이 가능하다. - flag_29cbb98dafb4e471117fec409148e938675.. 2020. 2. 1.
[webhacking.kr] old-20(200) 풀이 [old-20] js 기초 - 쿠키값을 보면 st가 있다. - time limit가 있는 걸로 보아, st로 시간이 2초 지났는지 확인하는 것 같다. - 소스코드를 보면 버튼을 누르면 ck() 함수로 넘어간다.- ck()함수에서는 값이 비어있는지 확인하고 값과 확인 문자가 같은지 확인한다.- 콘솔창에서 새로고침 후 2초안에 저 구문을 입력하면 문제 클리어 2020. 2. 1.
[webhacking.kr] old-19(150) 풀이 [old-19] base64, md5, url인코딩 - 별로 볼게 없다.. 소스 코드를 보자. - 이번엔 코드도 별로 볼게 없었다. - 제출을 누르니 나는 admin이 아니라고 한다.. - 한번 guest로 로그인을 해보니 쿠키가 새롭게 생겼다 - 쿠키값의 끝에 %3D가 신경 쓰이는데, 이 %3D는 =이다.- 즉, 쿠키의 값은 base64로 인코딩 되어있다.- 콘솔창을 통하여 디코딩을 해보았는데 잘 모르겠다. - a로 로그인하자 쿠키의 userid가 바꼈다. - 이 값을 디코딩하면 32글자가 나온다. 이것은 md5의 인코딩 방식 - 위의 값을 md5복호화 하면 a 가 나온다.- guest에 있던 문자들을 32글자로 나눠서 디코딩을 해보자.- 글자가 32*5로 잘 맞았고 디코딩 결과 guest 문자였다.-.. 2020. 1. 31.
[webhacking.kr] old-12(250) 풀이 [old-12] js난독화, js 기초 - javascript challenge 라고 써져있다. - 페이지 소스 코드를 보니 script 태그 안에 이모티콘들이 많다..- 이 난독화 방법은 aaencode 방식이다.. (일본의 개발자가 만들었다고 한다.)* http://utf-8.jp/public/aaencode.html 난독화 사이트* https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html 복호화 사이트- 복호화 사이트에 저 이모티콘들을 넣어도 되고, 맨 끝의 ('_'); 부분을 지우고 콘솔창에 입력하면 코드가 출력된다. - 복호화한 코드이다.- ck는 document.URL.substr(document.URL.inde.. 2020. 1. 31.
[webhacking.kr] old-11(300) 풀이 [old-11] _ 정규표현식 - 들어가면 Wrong이 뜬다. view-source를 눌러 코드를 보자. - $pat에 저 문자열을 넣은 뒤 밑으 preg_match로 일치하는지 확인한다.- [1-3] : 1~3중에 아무 문자 하나- [a-f] : a~f중에 아무 문자 하나- {5} : 앞의 문자를 5번 반복 ([a-f]{5} : a~f의 문자들을 5번 반복)- _ : 그냥 문자 _- * : 문자 0번이상 반복- $_SERVER[REMOTE_ADDR] : 자신의 외부 ip 주소- \t : tap(URL 인코딩으로 %09) - 종합 해보면 자신의 ip주소가 127.0.0.1의 경우 1aaaaa_127.0.0.1%09p%09a%09s%09s 가 된다. 2020. 1. 31.
[webhacking.kr] old-10(250) 풀이 [old-10] html 이해 * 구글 크롬에서는 문제가 안풀립니다. (internet explorer 사용 권장) - 들어가면 O가 있고 오른쪽에 Goal이 있다. - 코드를 보면 O에 마우스를 올리면 yOu로 변경되고, O를 클릭하면 1px 오른쪽으로 이동한다.- 그리고 1600px 만큼 움직이면 문제가 풀리게 된다. - internet explorer로 다시 들어가서 빨간 네모 부분을 1600으로 변경하고 O를 누르면 클리어 2020. 1. 31.
[webhacking.kr] old-06(100) 풀이 [old-06] base_64 - ID와 PW가 써있다. view-source를 통해 코드를 보자. - 주목해서 봐야할 부분은 아래쪽이다.- cookie로 user와 password를 받고 20번 디코딩을 한 뒤 id=admin, password=nimda 이면 풀리게 된다.- base64로 인코딩 할 경우 특수문자는 생기지 않으므로 str_replace는 무시해도 된다. (=패딩만 생긴다) - EditThisCookie로 보면 원래는 user와 password가 있을텐데 PHPSESSID 빼고 나머지를 삭제한다. - 콘솔창을 통해 user, password쿠키 값을 base64로 20번 인코딩 한 뒤 설정 해주면 문제가 풀리게 된다.- 기존의 user, password 쿠키를 삭제하지 않을경우 쿠키값이.. 2020. 1. 31.
[webhacking.kr] old-04(300) 풀이 [old-04] 레인보우 테이블 - 들어가면 어떠한 값이 써져있고, Password를 입력하는 칸이 있다. - php 부분을 보면 brute force 공격을 막기 위해 sleep(1)함수가 적용되어 있고,- 10000000~99999999+salt_for_you 라는 문구를 $_SESSION['chall4']에 저장하고,- 그것을 sha1로 500번 암호화 하여 출력한다.- 우리가 알아야하는것은 sha1로 암호화 하기 전의 문자열이다.- 이 문제를 풀기위해서는 레인보우 테이블이라는 것이 필요하다.- sha1은 단방향 암호화 방식이다. (해시값에서 평문값을 못찾는다)- 단방향 암호화를 복호화 하려면 해시값끼리 비교해보는 것이 유일하다.- 즉, 레인보우 테이블이란 해시값에서 평문을 추출하기 위한 목적으로 .. 2020. 1. 31.
[webhacking.kr] old-17(100) 풀이 [old-17] js 기초 - 페이지 소스 코드를 보자. - 내가 form 태그를 통해 입력한 값과 unlock 값이 같으면 풀리게 된다. - 콘솔창을 통해 결과값을 alert를 통해 출력해 주자.- 7809297.1을 form태그를 통해서 전송하면 url이 https://webhacking.kr/challenge/js-4/?780929.71로 바뀌면서 Clear! 2020. 1. 30.
[webhacking.kr] old-16(100) 풀이 [old-16] js 기초 - 들어가면 노란 별이 있다. - script 부분을 보면 키를 누르면 mv(event.keyCode)에 의해 입력한 키의 값이 mv함수로 전해진다.- mv 함수를 보면 cd가 124일 때, 문제가 풀리게 된다.- 124는 아스키 코드로 | - | 를 입력하면 문제가 풀린다. 2020. 1. 30.