목록2017/07/16 (10)
Maru's
id 값이 고정시 되있고 no를 get방식으로 받아 거기에 따른 echo 값이 출력된다. 1을 no변수에 넣어주면 쿼리가 참이되어 id 값인 guest가 출력 되는 것을 볼 수 있다. 푸는 방법은 여러가지 있찌만 쿼리문의 no 를 거짓으로 만들고 참인 쿼리를 생성하여 오름차순으로 만들어 보겠다. 전체 쿼리는 이렇다. id =guest no = -1 로 하여 거짓으로 주고 or 1 order by id asc 로 id 값을 DB에서 abc순으로 받아온다. 그렇게되면 a인 admin이 가장 위에 있기 때문에 쿼리에서 도출된다.
소스를 보자면 필터링 소스는 전 그렘린과 같고 id 와 pw의 를 입력받아 출력한다. id가 admin일 경우 solve 된다. passwd를 조건에 걸지 않앗으니 admin만 주고 나머지는 주석처리하면 id에는 admin이 들어갔기 때문에 solove 할 수 있다.
너의 목적은 를 입력하는 것이다. 입력하면 no hack이란다 ㅡㅡ 일단 천천히 무엇이 필터링 되었는지 확인해보니 script 와 alert가 필터링 되어있다. Script와 alert를 필터링 된것을 우회하면 클리어 가능 한 것으로 보인다. a%00l%00e%00r%00t%00(%001%00)%00; 이렇게 %00을 곳곳에 집어넣어 필터링을 우회해주면 클리어 가능하다.
개인적으로 더럽게 노가다문제였다. (하는 방법을 모르니.. ) Login 과 Join 있다. Join을 누르면 밑처럼 Access_Denied 가 뜨고 윗처럼 login을 누르면 /mem/login.php로 넘어간다 여기서 이상한점은 mem이라는 곳으로 넘어가는 것 이여서 디렉토리 리스팅 취약점이 있을까 확인을 해보았다. Index of /hint라는 곳에 접근이 가능했고 이곳에는 join.php 파일이 있어 들어가 보았다. 들어가보니 아무것도 없어 소스를 보니 이 문제가 왜 300점 인지 알거같은 난독화가 되어 있었다. 이 난독화 된 코드를 정리해보면 Challenge 5 이렇게 였고 이걸 조금더 풀어보면 if (eval(document.cookie).indexOf(oldzombie) == -1) { ..
웹해킹 1번문제를 보면 저상태에서 index.phps라는 링크가 걸려있다 저쪽으로 넘어가보자. 소스를 보면 Cookie의 User_lve이 1로 설정되고 그 밑 은 6보다 작거나 같으면 User_lv가 1로 설정되고 5보다 클 경우에만 solve가 된다. EditThisCookie라는 크롬확장프로그램을 사용하여 User_lv 쿠키를 생성 후 5.5 즉 5보다는 크고 6보다는 작은 값을 넣어주면 문제가 해결된다.
은근히 어려운 척 하면서 쉬운문제고 찝찝했던 문제이다. 소스를 보면 난독화 되어있다. String.fromCharCode 함수는 안에 숫자값을 아스키 값으로 문자로 바꾸어주고 eval은 javascript로 실행될 수 있게 해준다. 저쪽 난독 화 되어 있는 부분을 개발자 모드의 콘솔에 붙여넣으면 소스를 얻을 수 있다. 뭐 이런 저런 함수들이 추가되어있는데 나는 Password를 출력해주는 제일 처음 조건문만 보았다. ck 가 == "="이하 enco3))까지 이면 password 는 ck에서 =를 뺀 것이라고 되어있다. 위 구문 중 조건문만 개발자 모드에 돌려주면 Youaregod~~~~~~~~~!이라는 것을 얻을 수 있고 auth 에 입력하면 클리어 할 수 있다.
[그림 1:] gremlin 소스 처음 소스를 보자면 id 와 pw에 prob, _ \, 등 필터링이 되어있고 쿼리가 짜여져있다 그리고 그 쿼리가 출력 된다. or 이나 ' 가 필터링 되어있지 않기 때문에 간단하게 질의를 admin' or 1=1 %23이라고 주면
42번문제는 두가지 링크가 있는데 하나는 눌러보면 test.txt로 이동하고 test.zip은 눌러보면 Access Denied 를 띄웁니다. 소스를 보면 살짝 웃긴게 test.txt는 down=test.txt를 base64인코딩 한것으로 보이는 링크 그리고 밑은 그냥 alert를 집어넣었네요 ㅡ.ㅡ 저 인코딩한 것으로 의심되는 것을 디코딩 해보니 test.txt가 되는 것으로 보아 업로드 할 떄 base64로 인코딩하여 저장하는 것 같습니다. test.zip를 base64 인코딩 하여 저쪽에 있는 dGVzdC50eHQ=를 수정하여 text.zip의 base64인코딩 코드로 갈아넣습니다. 그리고 다시 본창으로 돌아와 download를 누르게 되면 test.zip파일이 다운로드 됩니다. 열어보면 암호가 걸..
이번 문제는 매우 짜증나는 33번 문제입니다. 총 10가지 문제를 한문제에다 200점짜리로 넣어놨습니다.ㅡ.ㅡ 33-1번 문제입니다. 링크를 하나주고 밑에는 Wrong이라고 되어있습니다. 소스를 확인해봅시다. 소스를 확인하면 get이라는 변수에 hehe라는 입력값이 들어가면 next라는 링크를 준다고 합니다. get방식으로 URL에 get=hehe 를 입력해주면 쉽게 풀립니다. 33-2번문제도 똑같은 문제입니다. 다만 이번엔 POST방식으로 post에 hehe post2에 hehe2를 넣어야 Next라는 링크를 준다고 합니다. POST방식과 GET방식의 차이는 GET방식은 URL에 노출되고 POST방식은 폼안에 쓰인다고 합니다.(URL에 보이지 않습니다.) 문제를 푸는 방법은 크롬의 개발자도구를 사용하여..
25번 화면의 페이지의 문제는 file에 입력받아 그 입력된 것에 따라서 출력 되는 것으로 보입니다. 소스를 확인해보면 아무것도 힌트를 얻을 수 없습니다. 혹시나 파일에 다른것을 입력 해보지만 아무런 반응이 없습니다. 여기서 예상 해 볼 수 있는 것은 hello.txt의 내용이 hello world이고 hello를 입력 값으로 주었을 때 hello.txt가 출력된 다고 볼 수 있습니다. 그러므로 입력 값 뒤엔 .txt가 붙는 소스가 첨가 되 있을 것 같습니다. 문제에 문자열끝을 알려주는 널문자를 첨가하여 File에 Password.php%00을 넣어준다면 널문자까지 문자열 끝으로 인식해 password.php가 출력 됩니다.