목록Study & Programming (19)
ITS_Blog

[Webhacking.kr] Challenge 10웹해킹 챌린지 10번 문제풀이입니다. 이 문제는 아주 간단한 문제로써, 쉽게 풀 수 있습니다. 다음과 같이 o를 Goal까지 이동시키는 문제입니다. 소스에 따라 물론 1600번 클릭하는 방법도 있지만, css를 수정함으로써 더욱 쉽게 풀 수 있습니다. 다음과 같이 hackme라는 o의 left 속성을 1599로 바꿈으로써 이후에 클릭 한번만 하면 문제를 해결할 수 있습니다. 따라서 개발자모드의 Colnsole를 이용하여 다음과 같이 hackme의 속성을 변경해줍니다. 위의 과정을 수행하면 다음과 같이 o가 goal의 지점에 오게 됩니다. 이 상태에서 한번 더 누르게 되면 문제가 풀리게됩니다. 읽어주셔서 감사합니다.

[Webhacking.kr] Challenge 44 웹해킹 챌린지 44번 문제풀이입니다. 이 문제는 주어는 양식을 이용하여 ls를 실행하는 문제입니다. 소스를 보면 ls를 execute하라고 되어있습니다. 소스코드에서 핵심적인 부분은 POST방식으로 id 값을 받으며, id의 길이는 5라는 것입니다. 또한, system() 부분이 실질적인 소스 실행부이기에 이 부분에 맞게 id를 전송해주어야 합니다. 따라서 system() 함수 안의 파라미터 부분을 공략하는 것이 이 문제의 핵심입니다. system("echo 'hello! {$id}'");에서 ls를 실행하기 위해 텍스트박스에 ';'ls를 입력하여 전송합니다. 이 구문을 넣어서 submit를 클릭하면 system("echo 'hello! ';'ls'")..

[Webhacking.kr] Challenge 47 웹해킹 챌린지 47번 문제풀이입니다. 이 문제는 Mail Header Injection 문제입니다. subject 부분을 이용하여 저 메일을 자기 이메일로 참조로 보내면 되는 문제입니다. 다음과 같이 'Cc: youremailaddr@hello.com' 형식으로 넣어서 전송하면 자신의 메일 주소로 FLAG가 전송됩니다. 이 FLAG를 Auth에 넣어주시면 됩니다. 읽어주셔서 감사합니다.

[Webhacking.kr] Challenge 36웹해킹 챌린지 36번 문제풀이입니다. 36번 문제는 vi 수정 중 문제가 발생하여 복구 파일이 생성된 경우입니다. 따라서, 복구 파일을 열어보도록 하겠습니다. 일반적으로 vi의 복구 파일은 숨김 파일입니다. 따라서 '.파일이름.파일확장자.swp' 형태를 띄게됩니다. 이 점을 이용하여 .index.php.swp를 현재 URL경로에 넣어보면, 파일이 하나 다운로드 됩니다. 다운로드한 파일을 메모장이나, Hxd 등으로 열어보게 되면 FLAG가 들어있습니다. 이 FLAG를 Auth에 인증하면 문제가 풀리게 됩니다. 읽어주셔서 감사합니다.

[Webhacking.kr] Challenge 26 웹해킹 챌린지 26번 문제풀이입니다. 이 문제는 GET방식으로 admin이라는 단어를 전송하면 되는 문제입니다. 그러나 단순하게 보내는 것이 아닌 urlencode를 이용하여 preg_match를 우회합니다. 우선, admin이라는 단어를 Hex로 변환하면 다음과 같습니다. 또한, php소스부에서 urldecode를 이용하기에, 이 헥스값을 urlencode 해줍니다. 이제 이 값을 id라는 이름으로 GET방식 전송해주면 문제가 풀리게 됩니다. 읽어주셔서 감사합니다.

[Webhacking.kr] Challenge 24 웹해킹 챌린지 24번 문제풀이입니다. 24번 문제는 clientip를 루프백아이피(127.0.0.1)로 만드는 문제입니다. 일반적으로 공인 아이피를 127.0.0.1로 만드는 것은 말이 안되기에, 소스를 보면 해답이 있습니다. extract 함수를 이용하여 $_SERVER과 $_COOKIE 배열을 푸는 것을 알수 있습니다. 이를 이용하여 $_SERVER의 $REMOTE_ADDR을 $_COOKIE에서 넣어줌으로써 값을 변경할 수 있습니다. 소스부에서 replace를 이용하여 12, 7, 0 을 공백으로 만들기에 중복하여 기입해줍니다. 또한 마침표도 치환하기에 ..을 덧붙혀줍니다. Burp Suite를 이용하여 다음과 같이 쿠키에 REMOTE_ADDR를 추..

[Webhacking.kr] Challenge 54 웹해킹 챌린지 54번 문제풀이입니다. 이 문제는 간단히 보자면 빠르게 지나가는 글자를 기록하여 인증하는 문제입니다. 다음과 같은 화면에서 빠른속도로 글자가 변해가는 것을 알 수 있습니다. 이 빠르게 변하는 글자를 알기위해 개발자모드(F12)를 이용합니다. 개발자모드로 보면 다음과 같이 변하는 글자 하나하나를 볼 수 있습니다. 이 글자들을 하나하나 모아보면 아래와 같이 FLAG가 있습니다. 이 문장을 Webhacking.kr의 Auth에 넣어 제출하시면 문제가 풀립니다. 읽어주셔서 감사합니다.

[Webhacking.kr] Challenge 6 웹해킹 챌린지 6번 문제풀이입니다. 이 문제는 아래와 같습니다. 소스부분을 보면, !COOKIE['user']일때 기본값 guest로 설정하는 것을 알 수 있습니다. !COOKIE['user']일때 기본값 guest로 설정하기에, COOKIE['user']을 임의로 전송하면 guest가 아닌 임의의 값으로 전송할 수 있음을 알 수 있습니다. 또한, 문제를 풀기위해선 decode_id와 decode_pw가 각각 admin, nimda가 되야함을 알 수 있습니다. 또한, 출력부에서 base64_decode를 20번 수행하기에, id와 pw를 전송할때 encode를 20번 수행해야 함을 알 수 있습니다. 따라서 'admin'와 'nimda'를 20번 base_..

[Webhacking.kr] Challenge 33-10 웹해킹 챌린지 33-10번 문제풀이입니다. php소스부를 보면, 접속자의 공인 IP를 이용하여 answerip라는 폴더에 파일을 write모드로 작성하는 것을 알 수 있습니다. 이 파일에 접근하기 위해선 answer과 ip를 알아야합니다. 그렇기에, 저는 직접 php서버를 이용하여 계산해보았습니다. 소스의 첫번째줄 $ip를 상황에 맞게 수정하여 자신의 공인 아이피를 대입하시면 됩니다. 기본 설정은 이렇습니다. 만약 내부망에서 돌리신다면, $ip = "123,123,123,123"; 이런식으로 자신의 공인 ip를 대입하시면 됩니다. answer의 값과 ip의 값을 구했으면, URL의 마지막부분에 /answerip/answer값_ip값.php 를 추가..

[Webhacking.kr] Challenge 33-9 웹해킹 챌린지 33-9번 문제풀이입니다. 소스코드를 보면 반복문에서 97 99 101 103 순으로 char을 answer에 더하고 있음을 알 수 있습니다. ASCII코드의 97은 a이고, 99는 c입니다. 이런식으로 했을때 answer은 acegikmoqsuwy가 된다는 것을 알 수 있습니다. 그렇기에 GET방식으로 ?ans=acegikmoqsuwy 를 전송해주면 문제가 풀립니다. 읽어주셔서 감사합니다.