728x90

Web hacking 17

웹해킹 7주차 - 1

이번주에는 저번주보다는 비교적 난이도가 쉬울 것이다. 이번주는 25, 23, 11번을 풀어보겠다. 먼저 25번을 풀어보겠다. 주소창에 hello.txt , index.php, password.php 를 입력해 보았지만 아무런 변화가 없었다. 이로써 한 가지 추측을 해 볼 수 있는데, ?file=hello 가 사실은 hello.txt인데 확장자를 생략시키는 코드가 짜여있어서 hello로 나타나 있다는 것이다. 그래서 password.php를 쳐도 password 변형되서 입력되기 때문에 password.php로 넘어가지 않는 것이다. 그렇다면 password.php를 입력받게 하려면 어떻게 해야할까? 예를들어 ?file=index.php 에 + .txt라는 확장자가 자동으로 붙는 코드일 경우 ?file=i..

Web hacking 2017.12.02

웹해킹 6주차 - 2

47번 문제를 풀어보자.. 메일 해더 인젝션이라고 뜬다 F12를 눌러보자 index.phps로 들어가보자. 소스를 보면 password를 admin@webhacking.kr 이라는 이메일에 보내는 거같다. 사실 필자도 mail header injection을 잘 몰라 선배에게 도움을 요청했다 ㅠㅠ "cc : 이메일형식" 을 이용하면 해당 이메일에도 password를 전송한다고 한다. 이를 위해 크롬에서 Falcon proxy를 추가하고, 위의 툴을 사용해서 중간에 패킷을 가로챌 것이다. 위의 버튼을 클릭해서 add를 누른다음 해당 형식에 맞게 아무거나 써주면 된다. 위의 툴을 실행시키고 Proxy -> intercept -> off를 on으로 바꾼후에 이메일 형식을 아무렇게나 입력하고 아래칸에 cc : ..

Web hacking 2017.11.20

웹해킹 5주차 - 3

마.지.막 42번! ㄱㄱ (갈 수록 짧아지는건 기분탓) 위에 것 부터 들어가자. 다시나오자 ㅎ.. F12를 눌러보자. 이제 이쯤이면 인코딩 디코딩에 관해서는 익숙해질 때가 되었다고 생각한다. 누가봐도 base64와 연관되어 있을 것 같지 않은가?! 인코딩 ㄱㄱ zzahn! 위 값을 DOM탐색기를 이용해 test.txt와 같은 형식으로 바꿔서 입력하자. a href=?down=위 인코딩값= 해주면 된다! 오오오옹ㅇㅇ 뭔가 다운했다! 아까 개발자 도구에서 초록글씨로 Password is only numbers 라고 했으니 알집 비밀번호를 푸는 풀을 이용해 풀어보자. 비밀번호는 852! 빨리 풀어보자 (필자는 얼른 자고싶다) 위 사이트로 들어가보자! 패스워드가 나타났다!!! 이상으로 이번주 문제 풀이를 마치겠다.

Web hacking 2017.11.06

웹해킹 5주차 - 2

26번 문제를 풀자! (갈 수록 서론이 짧아져서 좋은 것 같다) 링크를 따라가보자. 코드중에 eregi (cf : eregi는 대소문자 구별x ,ereg는 대소문자 구별o) 함수를 보면 adimin 이라는 문자열이 발견되면 exit (함수를 종료) 하도록 되어 있는데 아래 코드를 보면 $_GET[id] == "admin" 이어야 한다. 중간에 $_GET[id]값에 urldecode한 $_GET[id] 값을 저장한다는 말이 있으니, admin을 한 번 인코딩 한 값을 $_GET[id]에 넣어주면 디코딩을 거쳐 admin이 될 것이다! 하핳.. 너무하다. 아마 서버의 php가 admin을 인코딩한 값을 알아서 디코딩하여 해석하기 때문에 그런 것 같다. admin을 두번 인코딩한 값을 주소창에 넣어보자. 풀렸..

Web hacking 2017.11.06

웹해킹 5주차 - 1

오늘도 어김없이 이 시간이 돌아오고야 말았다. 서론은 길어봐야 도움이 되지 않으니, 어서 시작하자. 오늘은 24, 26, 42번 문제를 풀어보겠다. 24번 먼저 풀어보자. 다짜고짜 내 IP가 틀렸다고 한다 -_-; F12를 누르자. 별 다른 힌트는 없고 index.phps를 주소창에 추가하라는 것 같다. 얼른해보자! 어디서 많이 본 함수이다. 여기서 참고 할 것이 있다. $decode_id=str_replace("!","1",$decode_id); 는 decode_id에서 !를 1로 바꿔주자 라는 뜻이다. (출처 아는 친구) 코드를 보면 ip에서 12와 7.와 0. 을 없애고 나서 ip==127.0.0.1 이 되면 solve 라고 하니 127.0.0.1 에서 저것들을 없애고 난 후의 아이피가 저런 형태로..

Web hacking 2017.11.06

웹해킹 4주차 - 3

드디어 이번주 마지막 문제 풀이다. 어서 6번문제에 들어가자. ID와 PW 가 초기화 되어있는 것 처럼 보인다. 링크에 들어가자. 코드를 보니 id는 guest로 pw는 123qwe로 되어있고 이 값들을 for문에서 20번 인코딩 한 값을 Setcookie 즉 user와 password의 쿠키값으로 각각 정하고 있다는 것을 알 수 있다. (실제로 쿠키값을 확인 해 보면 알 수 있다) 디버거의 아래를 보면 비슷한 방식으로 쿠키명인 user와 password이 admin을 디코딩 20번 한 값을 쿠키값으로 가지면 solve되는 것을 확인 할 수 있다. 이와 같이 쿠키값을 변경해주면 클리어다. 이상으로 이번주 웹해킹 문제풀이를 마치겠다.

Web hacking 2017.10.28

웹해킹 4주차 - 2

이제 4번 문제를 풀어보자. 뭔가 위에 있는 문자열을 디코딩해야 할 것 같은 느낌이 든다. F12를 눌러보자. 이렇다 할 힌트가 없다. 여기서 알아두어야 할 인코딩/디코딩 방법을 적어본다. Base64 : 문자열의 길이를 늘여 인코딩하는 함수이다. (취약, 보안용도가 아님) SHA1 160비트(40자) 암호화 해시 함수이다. (역시 취약) MD5 : 128비트(32자) 암호화 해시 함수이다(취약) 사실 필자는 디코딩을 해야겠다는 사실만 알았을 뿐 어떤걸로 디코딩 하는지 몰랐다. 알아보니 해당 문자열을 Base64로 디코딩한 값을 SHA1로 디코딩하고 한 번 더 디코딩 해야 한다는 것을 알았다. Base64로 디코딩하고. SHA1로 디코딩 하면 또 40글자의 문자열이 나오기 때문에 한 번 더 반복해준다. ..

Web hacking 2017.10.28

웹해킹 4주차 - 1

오늘 풀어볼 문제는 1,4,6번 문제이다. 차례대로 풀어보자. 시작부터 뭔가 상위권한을 얻어서 푸는 문제 같다는 기분이 든다. index.php를 눌러 이동해 보자. 코드를 분석해 보면 user_lv이 6보다 크거나 같으면 1로 바뀌고 user_lv이 5보다 크면 해결된다는 것을 알 수 있다. 그렇다면 5에서 6사이의 수를 입력해보자 (필자는 5.5를 입력하였다) 보이는 것처럼 user_lv이 쿠키값을 가지므로 쿠키값을 변경해 주어야 하는데 그때 사용하는게 javascript:alert(document.cookie="변수명=쿠키값"); 이다. 위 이미지와 같이 user_lv에 5.5를 입력해주면 알림창이 뜬다. 이것으로 1번 문제 풀이를 마치겠다.

Web hacking 2017.10.28