전체 글
-
[Renewal] webhacking.kr old-30 [550]$ 웹 해킹 $/webhacking.kr 2020. 1. 11. 12:28
파일 업로드 문제로 보인다. 위의 경로에 있는 소스코드를 확인해 보면 아래와 같습니다. 일단 위의 소스코드에서 이상한 부분이 보인다. 바로 mysqli_connect() !! 위의 함수는 mysqli와 연결 해주는 함수 인데 함수를 한번 확인해 보자. 문법을 보면 host, username, password, databasename, port, socket 등등을 인자로 넘겨주는데 아무것도 입력이 되어 있지않은것을 확인할 수 있다. 이럴 때는 php.ini 또는 .htaccess 에서 default 값을 가져와서 mysqli_connect()에 사용하게 되는데 실제 php 공식 사이트에서 어떤 값을 가져오는지 확인해 보자 사이트 : https://www.php.net/manual/en/ini.list.p..
-
[Renewal] webhacking.kr old-29 [400]$ 웹 해킹 $/webhacking.kr 2020. 1. 11. 12:22
문제를 보면 파일업로드를 하면 time과 ip와 file이 출력 되는것 같습니다. 파일을 하나 올려보겠습니다. 파일 업로드를 이용하는 문제가 아닌것 같다는 생각이 들어서 다시 파일 업로드를 하고 프록시로 잡아봤습니다. 입력할수 있는 부분이 filename이고 해당 문자의 아이콘이 데이터 베이스 인것으로 보아 sql injection 이라는 생각으로 insert를 해보려고 했습니다. 많은 시도를 통해서 아래와 같은 칼럼 순서를 알아냈습니다. 가린부분은 IP 부분인데 칼럼 순서가 파일명, 시간, IP였습니다. IP는 자신의 아이피가 아니면 출력을 해주지않는것으로 확인됬습니다. 결과는 아래와 같습니다. 시간은 1970-01-01 부터 1234 가 지난 시간인것 같습니다. 파일이름이 변경된것이 확인 되었기 때문..
-
[Renewal] webhacking.kr old-28 [500]$ 웹 해킹 $/webhacking.kr 2020. 1. 11. 12:21
파일 업로드 관련문제인것을 알 수 있습니다. 파일 업로드를 하게되면 ./upload/lluWo4BDqLw1/ 이라는 폴더 하위에 업로드 되게 됩니다. 또한 ./upload/lluWo4BDqLw1/flag.php를 읽어야 합니다. 하지만 아무것도 출력이 되지 않습니다. 예전에 사용했었던 웹쉘코드를 아무거나 하나 업로드 시켜봤습니다. 업로드한 경로로 들어가 보면 아래와 같이 내부 코드가 실행되는 것이 아닌.. 이미지를 출력하려고 합니다. 그래서 생각한 결과 .htaccess 가 생각이 났고 php 기능을 끄는 옵션을 가지고 있는 파일이므로 옵션을 끄면 php코드를 확인할 수 있을 것 같습니다. 윈도우에서는 .htaccess라는 파일명을 만들수 없기 때문에 1.htaccess를 만들고 프록시 툴을 이용해서 서..
-
[Renewal] webhacking.kr old-26 [100]$ 웹 해킹 $/webhacking.kr 2020. 1. 11. 12:19
소스코드를 확인해 보면 아래와 같습니다. 1. admin을 입력하면 no라는 문자열을 출력하면서 exit()함수를 실행 시킨다. 2. id라는 파라미터 값으로 입력을 하면 urldecode함수를 통해 입력된 URL Encoding 값을 URL Decode를 합니다. 3. 결국 1과 2의 과정을 거친뒤에 id의 값이 admin일 때 Clear가 되는 문제입니다. 그렇다는 것은 ?id=%61%64%6D%69%6E 라고 넣어보면 urldecode 가 자동적으로 URL을 통해 전달이 될때 1번이 되기 때문에 ?id=admin이 되고 1번에 필터링이 되고 아래와 같이 출력이 됩니다. 그렇기 때문에 URL Encode를 2번 해서 ?id=%2561%2564%256D%2569%256E 라고 넣으면 서버로 전달이 될때..
-
[Renewal] webhacking.kr old-25 [150]$ 웹 해킹 $/webhacking.kr 2020. 1. 11. 12:19
flag.php를 열어 봐야 할거 같습니다. FLAG is in the code 라고 되어있습니다. 코드 내부를 봐야할것 같습니다. php 파일의 코드 내부를 확인할때 PHP Wrapper 라는 것을 사용합니다. PHP는 PHP스스로의 입출력, 표준입출력, 오류파일 기술어등에 액세스 할 수 있는 다양한 I/O 스트림을 제공하는데 이를 PHP Wrapper라고 합니다. php://filter/convert.base64-encode/resource= 라는 형식으로 값을 입력 하는데 옆의 문자열은 resource=의 인자로 파일명을 적으면 base64 encoding 해서 사용자에게 보여줍니다. php://filter/convert.base64-encode/resource=flag.php 를 해보겠습니다. h..
-
[Renewal] webhacking.kr old-24 [100]$ 웹 해킹 $/webhacking.kr 2020. 1. 11. 12:01
소스코드를 확인해 보겠습니다. ip를 다루는 $REMOTE_ADDR 과 agent를 다루는 $HTTP_USER_AGENT가 있습니다. 이문제를 해결하는 주목적은 $ip가 127.0.0.1 이 되어야 합니다. REMOTE_ADDR 이라는 쿠키를 제작해서 값을 넣어보자. 필터링 되는 값이 있으니까 34라고 뜬다. 12 7. 0. 이 사라진다. 아래의 값을 쿠키에 입력하면 Clear! 112277...00...00...1