write-up(web)/webhacking.kr

    [Webhacking.kr] Challenge old-43 write-up

    [Webhacking.kr] Challenge old-43 write-up

    문제 화면입니다. 웹셸을 업로드해서 cat /flag 명령을 수행시키면 플래그를 얻을 수 있습니다. php의 system 함수를 통해 운영체제에 명령을 내릴 수 있습니다. url로 명령을 입력할 수 있는 php webshell을 작성하였습니다. 이 파일을 그냥 업로드하면 업로드에 실패하게 됩니다. php 확장자를 필터링하는 듯 합니다. 이를 우회하기 위해 프록시(버프스위트)를 사용해 content-type을 바꿔주도록 하겠습니다. content-type을 image/jpeg로 변경해준 뒤 전송해줍니다. 업로드에 성공했습니다. 링크를 클릭하면 해당 파일로 이동할 수 있습니다. 이제 cmd 파라미터에 cat /flag를 전달해주면 플래그가 나옵니다!

    [Webhacking.kr] alien golf write-up

    [Webhacking.kr] alien golf write-up

    문제 화면입니다. los의 alien 문제와 같은 문제입니다. 끝! 다른 글을 참고해 경량화된 페이로드입니다. https://ssongkit.tistory.com/202 [Lord of SQLInjection] alien write-up 문제 화면 및 소스 코드입니다. 4개의 조건문을 통과해야 하는 상황입니다. 조건문에 따라 쿼리 결과가 admin이거나 admin이 아니어야(!admin) 합니다. 즉, 쿼리의 결과가 admin, !admin, !admin, admin 순으로 ssongkit.tistory.com https://mingzz1.github.io/wargame/lord-of-sql-injection/2018/09/19/los-alien.html/ mingzzi's blog 와 드디어 Lord ..

    [Webhacking.kr] ouroboros golf write-up

    [Webhacking.kr] ouroboros golf write-up

    문제 화면 및 소스 코드입니다. los의 ouroboros와 동일한 문제이며 quine 쿼리를 이용하는 문제입니다. 아래는 다른 글을 참고해 경량화된 페이로드입니다. https://ssongkit.tistory.com/162 [Lord of SQLInjection] ouroboros write-up 문제 화면입니다. 참인 조건을 넣어줬을 때 아무 일도 일어나지 않습니다. 아마 테이블의 pw컬럼은 비어 있는 것 같습니다. 도저히 모르겠어서 라이트업을 보니 Quine이라는 친구를 사용한다고 합 ssongkit.tistory.com https://blog.limelee.xyz/entry/LOS-zombie [LOS] zombie 문제 의도의 기능을 알고 있었으면 간단하게 풀리고 아니면 엄청 삽질하게 될 수 있..

    [Webhacking.kr] Challenge old-59 write-up

    [Webhacking.kr] Challenge old-59 write-up

    문제 화면입니다. 문제의 소스 코드입니다. lv가 admin인 계정으로 로그인하면 되는 문제입니다. 일단 addslashes 때문에 문자열을 직접 넣지 못합니다. 또한 컬럼별로 타입이 다른데 id는 문자 타입, phone은 숫자 타입, lv는 문자 타입입니다. 해당 필드의 데이터 타입도 맞춰줘야 정상적으로 sql 구문이 실행됩니다. 여기서 id 필드가 주요하게 작용합니다. 아래와 같이 페이로드를 작성할 수 있는데 문자열을 거꾸로 출력하는 reverse함수를 사용할 수 있습니다. 문제가 풀렸습니다! 내장 함수에 필드 변수를 넣을 수 있다는 점이 인상깊었고 거의 다 왔는데 라업을 본 것 같아서 약간 아쉬웠던 문제..

    [Webhacking.kr] Challenge old-30 write-up

    [Webhacking.kr] Challenge old-30 write-up

    (old-28과 마찬가지로 멘토님이 도와주신 문제..) 문제 화면입니다. 문제의 소스 코드입니다. die 함수를 전부 피하고 결과 값이 존재하면 플래그를 얻을 수 있습니다. 그냥 index.php로 가면 아무것도 출력되지 않아서 die 함수가 실행됐음을 알 수 있습니다. 접근 방식은 이전 old-28과 비슷한데 에러를 일으켜보면 사용되는 서버가 아파치 서버임을 알 수 있습니다. mysqli_connect()에 인자로 설정된 값이 없으면 php.ini의 디폴트 값을 가져와서 실행하는데 .htaccess 파일로 해당 디렉터리 내의 디폴트 값을 설정해 줄 수 있습니다. https://www.php.net/manual/en/configuration.changes.php PHP: How to change conf..