100
-
[Renewal] webhacking.kr old-39 [100]$ 웹 해킹 $/webhacking.kr 2020. 1. 11. 16:01
심플한 입력창입니다. 소스코드를 확인해 보겠습니다. 이문제는 입력하는 칸에는 15글자만 가져오고, 쿼리문에서는 13글자 이하여야 한다고 합니다. 하지만 id쪽 쿼리문을 보면 싱글쿼터를 열고 닫지 않은것을 확인할 수 있는데, 입력하는 입장에서 쿼리문을 닫아야 하지만 하나의 싱글쿼터가 입력이 되면 싱글쿼터 2개로 치환을 합니다. ' -> '' 그렇기 때문에 '를 입력하기 쉽지가 않습니다. mysql을 공부하다가 알게 된 사실이 하나 있는데 'a' 와 'a ' 와 똑같이 인식을 한다는 점입니다. 해당 문제에서 깊게 다룰 이야기는 아니니 간단하게 설명을 하자면.. mysql 에서 칼럼의 형식을 지정할때 char, varchar 등등 여러 형식이 존재 하는데 char 형식일때 생기는 상황입니다. char(5) 라..
-
[Renewal] webhacking.kr old-38 [100]$ 웹 해킹 $/webhacking.kr 2020. 1. 11. 15:58
log injection 이라 되어 있네요! 소스코드를 확인해 보면 주석을 확인할 수 있습니다. admin.php 라는 페이지가 존재 합니다. log viewer 라고 적혀 있고 admin 으로 로그가 나와야 하는거 같습니다. 1234로 입력을 한뒤 로그를 확인해 보면 아래와 같습니다. IP주소 : 입력값 형태의 출력을 확인 할 수 있습니다. 이번에는 admin을 적어 보겠습니다. admin은 필터링이 되는 것 같습니다. 로그가 위에서 부터 아래로 출력이 되는 것으로 보아 CR-LF Injection이 떠오릅니다. \r이나 \n을 이용해서 줄바꿈을 넣어서 필터링을 우회할 수 있을 것 같습니다. 노트북을 초기화 한지 얼마 안되서 프록시 툴이 없기 때문에.. input을 textarea로 바꿔서 \n을 입력..
-
[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-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
-
[Renewal] webhacking.kr old-6 [100]$ 웹 해킹 $/webhacking.kr 2019. 12. 3. 14:46
id : guest / pw : 123qwe 라고 되어 있습니다. 소스코드를 확인해 보겠습니다. 소스코드는 길어 보이지만 쉬운 소스코드 입니다. 위의 php 코드는 user 라는 쿠키가 없으면 guest / 123qwe를 넣고 base64로 20번 인코딩을 반복합니다. 그리고 아래의 코드는 20번 디코딩 하는 작업입니다. 디코딩한 데이터가 id=admin이고, pw=nimda가 되면 solve(6)입니다. admin을 base64로 인코딩 20번하고 user 쿠키에 집어 넣고, nimda도 base64로 인코딩 20번 하고 password에 넣으면 됩니다. ↑ admin문자열 base64 인코딩 20번한 값 ↑ nimda문자열 base64 인코딩 20번한 값