소스코드를 보자 genRandomString() 함수는 $string에 characters[0~len(characters) 중 random한 숫자]를 붙여넣는다. 그리고 $string을 리턴한다. makeRandomPath함수는 random string에 path를 만들어 주는 함수로 path가 있는지 확인하는 함수이다. makeRandomPathFromFilename함수는 POST방식으로 filename을 받아서, 해당파일의 확장자를 확인하여 path를 만들어 리턴해주는 함수이다. genRandomString함수를 통해 random한 스트링이 출력이 되고 확장자가 jpg로 바뀌는 것을 알 수 있다. 이 페이지에서는 파일을 업로드 하는것외에는 할수 있는게 없다. 따라서 burp suite를 이용해야 될거..
문제 풀이 Hint: close the current tag and add SCRIPT tag... 현재의 태그를 닫고 script 태그를 넣어주면 된다고 한다. 소스코드를 확인해보면 값이 value에 들어가는 것을 확인 할 수 있다. 따라서 현재의 태그를 닫으라는 말은 input의 태그를 닫으라는 뜻이다. 그렇게 되기 위해서 value에서 닫혀야 한다. 그러므로 "> 라고 작성하면 value에서 태그가 닫히고 script태그가 넣어지는 것을 확인할 수 있다. 실제로 그렇게 된다.
문제 id가 admin이고 pw가 $_GET[pw]인 데이터 중 pw를 받아온 다음 이 pw가 존재하고 pw가 $_GET['pw']와 같으면 풀린다. 풀이 orc문제와 비슷하다. 오크하고 오우거하고 비슷하게 생겨서 비슷한 문제인가 보다 유의해야 할점 1. or와 and를 쓸수 없는 점. 쓰면 HeHe가 뜬다. 2. pw가 존재하고 결과값의 pw와 입력값의 pw가 같아야 한다. 3. addslashes( string $str ) : 큰따옴표, 작은 따옴표 앞에 역슬래시 문자를 붙여주는 함수 Blind SQL Injection을 통해 pw를 알아야한다. length함수를 이용하여 pw의 길이를 구한다음 substr함수를 이용하여 하나씩 비밀번호를 구하는 방법이 있다. 그러나 이번에는 자동화 프로그램을 이용해..
Find a way to make the application request an external file which will cause it to execute an alert(). (응용 프로그램이 외부파일을 요쳥하도록 하여 alert()를 실행시키는 방법을 찾아라) location.hash를 사용해야 될거 같다. index.html 코드 Loading gadget... location.hash가 어디에 포함되어있는지 살펴보자 #을 사용한 후에 gadget 파일 이름을 사용한다고 한다. hint를 보자 1. #뒤에가 로드된 스크립트의 url에 어떠한 영향을 미치는지 봐라 2. gadget url 보안검사가 진짜 안전한가 3. 내가 지칠 때, 비명을 지르가 싶다 4. 악마같은 js file을 쉽게 호스..
문제 코드 showpassword값이 yes가 되면 문제는 풀린다. defaultdata는 배열인데 "showpassword"값은 no, "bgcolor"는 하얀색인 것을 알 수 있다 함수가 3개가 있다. 이를 각각 살펴보자 xor_encrypt함수에서 key는 검열되었다. text에는 in의 값이 들어간다. $outText .= $text[$i] ^ $key[$i % strlen($key)]; A^B=C일때 A^C는 XOR 성질 때문에 A^C = B가 된다 우리가 구하고자 하는 것은 key 값이기 때문에 xor의 성질을 이용하여 key값을 구할 수 있다. loadData 함수에서는 cookie값을 가져와서 base64_decode>xor_encrypt>json_decode 순으로 복호화 하고 이를 te..
문제 소스코드 window.location = '{{next}}'; 로 새페이지로 이동 email 넣는 부분은 필요 없는 부분 Next를 누르면 next를 받아서 {{next}}로 이동 풀이 sign up을 누르면 다음의 페이지로 넘어간다 아까 코드에서 Next를 누르면 next를 받아서 {{next}}로 이동하는 것을 확인했다. url을 보면 next=confirm이다. confirm 페이지로 넘어갈 것이다. 실제로도 confirm페이지로 이동했다. 그렇다면 sign up을 누른 페이지에서 next의 값을 바꾸면 될 것이다. XSS game Level 2를 풀때를 생각해보면 쉽게 풀 수 있다. Level 2를 풀때 XSS를 통해 풀었다. 이와 마찬가지로 next에 입력된 값이 href 속성의 값으로 가..
문제 소스코드 [preg_match함수] preg_match('/대조 할 문자/','입력한 문자', $matches); 찾고 싶거나 필터링 하고 싶은 문자를 대조할 문자에 넣음 첫번째 if문에서는 입력한 문자열이 key에 저장이 된다. 두번째 if문에서는 [ ; | & ] 문자가 key에 들어가면 illegal charater를 출력하고 아니면 passthru 함수를 시행한다. passthru함수의 쓰임은 level8->level9에서와 같다. 풀이 Level 8->Level 9 문제 풀이와 같게 하면 될거 같다. ^ /etc/natas_webpass/natas11을 입력해봤다. 풀렸다. 비번 : U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK [참고] ;cat /etc/natas_webpas..
문제 소스코드 array_key_exists("확인하고자 하는 키", [배열명]); 배열의 키가 존재하는지 확인하는 함수. 존재하면 1 리턴 passthru("명령어"); 명령어 시행하는 함수 grep 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어 grep -i : 대소문자 무시 첫번째 if문에서 입력한 내용이 key에 저장이 된다. 두번째 if문에서 key값이 있으면 key값을 dictionary.txt에서 찾는다. 풀이 grep을 이용하여 문제를 풀면 될거 같다. [grep 명령어] grep 명령어에 익숙하지 않으면 문제 풀때 좀 어려울 거 같다. 먼저 apple을 넣어보았다. niddle에 apple이 들어가고 화면은 다음과 같이 뜬다. grep은 정규표현식을 사용할 수..