본문 바로가기

웹 해킹57

[Webhacking.kr] old-19 문제 서버에 접속하면 id를 입력하는 칸이 나오지만 admin은 입력할 수 없습니다. 하지만 {admi}를 입력하는 경우 쿠키 값에 아래와 같은 값이 저장됩니다. MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE%3D {adm}을 입력하는 경우 아래와 같습니다. MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjY.. 2021. 9. 7.
[Webhacking.kr] old-25 문제서버에서 file=flag를 입력하면 플래그는 코드에 있다는 문구가 출력됩니다. 코드를 읽기 위해서는 PHP Wrapper를 사용할 수 있습니다. 코드는 아래와 같습니다. http://webhacking.kr:10001/?file=php://filter/convert.base64-encode/resource=flag 동작방식은 file에 flag를 넣어서 나오는 페이지의 코드를 base64로 인코딩해서 출력하는 것으로 추측할 수 있습니다. base 64를 디코딩하면 아래와 같습니다. 2021. 9. 7.
[Webhacking.kr] old-39 문제 서버에 접속하면 위와 같이 입력창이 있다. 코드는 아래와 같다. 2021. 9. 7.
[Webhacking.kr] old-54 문제 서버에 접속하면 위와 같이 Password가 출력되지만 빨라서 읽기가 힘들고 일정시간이 지나면 ?로 표시됩니다. Password is ? XHR 객체는 서버와 상호작용하기 위해서 사용됩니다. 전체 페이지의 새로고침 없이도 URL로부터 데이터를 받아올 수 있습니다. 이는 웹페이지가 사용자가 하고 있는 것을 방해하지 않으면서 페이지의 일부를 업데이트할 수 있도록 해줍니다. XHR 객체는 보통 빠르게 동작하는 동적인 웹페이지를 만들때 사용하는 Ajax 개발기법에 자주 사용됩니다. aview.innerHTML=x.responseText; 코드 핵심 부분을 다시 살펴보면 위 명령어는 aview라는 변수에 서버에서 가져온 어떤 데이터를 저장하는 코드이므로 아래와 같이 +를 붙여 문자가 하나씩 추가되도록 만든다.. 2021. 9. 6.
[Webhacking.kr] old-38 문제 서버에 접속하면 위와 같이 인젝션 공격을 유도하는 입력창이 있습니다. 아래 코드를 보면 admin.php라는 페이지가 존재하는 것을 알 수 있습니다. LOG INJECTION 당연히 그냥은 admin 계정으로 로그인 할 수 없습니다. 코드에 적혀잇떤 admin.php에 접근하면 이전에 입력한 값들이 로그로 기록되어 있습니다. 이번 문제를 풀기위해서는 CRLF 인젝션이라는 기법을 사용해야합니다. CRLF는 HTTP 패킷에 개행문자 \n, \r을 주입하여 파라미터를 조작하는 공격입니다. CRLF에서 CR은 Carrage Return 으로 커서를 해당 라인의 첫번째 인덱스로 옮기는 역할을 합니다. 예를 들어서 아래 코드를 실행하면 HelloWorld가 출력되는게 아니라 Hello가 덮어씌어져서 World.. 2021. 9. 5.
[Webhacking.kr] old-26 문제 서버에 접속하면 위와 같이 소스코드를 볼 수 있는 링크가 하나 있다. 코드는 아래와 같다. view-source 문제의 핵심은 디코딩을 한다는 것이다. 브라우저에서 get 방식으로 변수 데이터 값을 입력받으면 자체적으로 url인코딩을 합니다. 그리고 php는 전달받은 데이터를 자동으로 디코딩하기 때문에 admin을 두번 인코딩하여 입력값으로 넣어주면 /admin/ 필터링 함수에서 디코딩이 한번 남은 상태이므로 admin 문자열 필터를 우회할 수 있다. admin => %61%64%6d%69%6e %61%64%6d%69%6e => %2561%2564%256d%2569%256e 2021. 9. 5.
[Webhacking.kr] old-24 문제 서버에 접속하면 위와 같이 Wroing IP라는 문구가 출력되고 위에는 client ip와 agent 값이 있다. 코드는 아래와 같다. view-source extract($_COOKIE);명령어는 쿠키 배열 속의 키 값들을 변수화 하는 함수이다. 예를 들어 {a:1234, b:5678} 배열이 있다고 가정하면 a=1234, b=5678과 같은 효과를 가진다. 코드 중에 주목해야 할 점은 ip 값을 REMOTE_ADDR에서 가져온다는 것이다. 따라서 extract 함수의 취약점을 이용해서 REMOTE_ADDR변수에 원하는 값을 넣을 수 있다. 위와 같이 COOKIE 값에 REMOTE_ADDR 변수를 만들어 데이터를 삽입하면 extract 함수에 의해 REMOTE_ADDR에는 127.0.0.1이라는 .. 2021. 9. 5.
[Webhacking.kr] old-17 문제에 접속하면 입력칸이 하나 있다. 코드는 아래와 같다. F12를 눌러서 콘솔창에 해당 값을 입력하면 쉽게 계산을 할 수 있다. 7809297.1을 입력하면 플래그를 획득할 수 있다. 2021. 9. 5.
[Webhacking.kr] old-14 문제에 접속하면 입력칸이 하나 있다. 코드는 아래와 같다. 핵심 함수인 ck를 보면 url에서 .kr의 인덱스를 ul에 저장하는데 계산해보면 18이고 30일 곱하면 540. 540을 제곱하면 291,600이므로 https://webhacking.kr/challenge/js-1/?291600 을 주소창에 입력하면 문제를 해결할 수 있다. 2021. 9. 5.