반응형

php 14

[247CTF] FORGOTTEN FILE POINTER - 웹해킹 / PHP / LFI

247CTF 에서 제공하는 MODERATE 난이도의 WEB 문제 문제 페이지에 접속하면 이런 화면이 나온다. PHP 코드가 보여지는데 내용을 보면 /tmp/flag.txt 파일에 플래그가 있다는것을 알 수 있다. GET 메소드로 include 파라미터가 있어야하고, include 인자의 길이가 10 이하여야 include 함수로 서버 내부 파일을 읽어올 수 있는듯 하다. 10글자 길이제한이 없다면 단순히 URL 에 ?include=/tmp/flag.txt 를 추가하면 되겠지만 10글자 제한 때문에 안된다. https://bugs.php.net/bug.php?id=53465 PHP :: Bug #53465 :: Cannot open file descriptor streams bugs.php.net 조금 찾..

워게임/247CTF 2023.10.16

[247CTF] COMPARE THE PAIR - 웹해킹 / MD5 Magic Hash

php의 약한 비교(Loose Comparison) 로 인해 발생하는 php magic hash 와 관련된 웹 해킹 문제이다. 문제페이지어 들어가면 이런 코드가 나온다 php 로 작성되었는데 GET 으로 password 파라미터가 설정되어있고, md5(salt. $_GET['password']) 의 값이 password_hash 의 값인 0e902564435691274142490923013038 와 같은지 확인한 후 같으면 flag 를 보여주는 기능이다. salt 까지 들어간 해시값의 원래 문자열을 찾는건 불가능에 가깝지만 비교할때 '===' 가 아닌 '==' 을 이용해 두 값을 비교하기 때문에 취약점이 발생한다. 위 사진처럼 php 에서는 == 을 사용해 비교를 할 경우 두 값이 정확하게 같지 않아도 ..

워게임/247CTF 2023.09.23

[2021CCE] basic web - 웹해킹 / LFI

2021년 사이버공격방어대회(CCE)에 출제되었던 웹해킹 문제 생각보다 간단한 문제들이 많이 나왔었다. 이번 문제 역시도 문제 설명에 나와있는것 처럼 웹 사이트에서 자주 발생하는 기본적인 취약점을 다루고 있다. 플래그는 /flag 위치에 있다고 한다. 문제 소스코드는 별도로 주어지지 않고 문제 페이지 주소만 주어진다. 문제 페이지에 들어가면 이런 화면이 나온다. CCE 엔터테이먼트에서 CTS 가 데뷔했다고 한다.. F12를 눌러 개발자 도구에서 해당 페이지의 HTML 을 살펴보았다. 페이지 중간쯤에 2021냔 5월 CTS 의 스케줄표를 다운받을 수 있는 링크가 있는데 URI가 download.php?file= 형태로 구성되어 있었다. 쉬운 난이도의 문제라고 했기 때문에 전형적인 LFI 취약점 일것이라 생..

CTF/웹해킹 2023.08.11

[Root Me] P0wn3d - 웹해킹 / LFI

LFI 와 관련된 웹해킹 문제 쉽게 생각했는데 생각보다 오래걸렸다. 문제는 소스코드와 함께 접속할 수 있는 환경이 주어진다. 문제페이지에 들어가면 이런 허름한 사이트가 나온다. 아래쪽에 Powered by CMSimple 라고 적혀있는게 보이는데 검색해보니 CMSimple 가 php 로 만들어진 콘텐츠 관리 시스템이라고 한다. 대놓고 적어놓은걸 보니 저기에 취약점이 있을거라고 생각했다. https://www.exploit-db.com/exploits/5700 CMSimple 3.1 - Local File Inclusion / Arbitrary File Upload CMSimple 3.1 - Local File Inclusion / Arbitrary File Upload EDB-ID: 5700 CVE: 2..

워게임/Root Me 2023.07.08

[HackingCampCTF] World Wide Web - 웹해킹 / LFI

웹해킹 문제 문제 푸는동안 캡쳐을 제대로 하지 못했다. phpmyadmin 의 취약점과 관련된 문제이다. 첫 부분을 캡쳐를 못했는데 문제페이지에 접속해보면 어떤 사진 하나가 덩그러니 있다. F12를 눌러 개발자 도구를 살펴보면 이미지의 alt 값이 /phpMyAdmin 으로 되어있는데 이걸 통해서 /phpMyAdmin 이라는 경로가 있다는 것을 알아냈다. 주소창에 /phpMyAdmin 을 입력해서 들어가보면 로그인 창이 하나 나오는데 역시나 F12 를 눌러 개발자도구를 확인해보면 id 가 wwwweb, pw 가 wwwweb!@# 인것을 확인할 수 있었다. 아이디, 비밀번호를 입력하면 이렇게 정상적으로 로그인이 된다. phpMyAdmin 의 버전을 확인해보니 4.8.1 이었는데, 해당 버전은 LFI 할 수..

CTF/웹해킹 2023.04.28

[HackTheBox] Toxic - 웹해킹 / PHP Object Injection

HackTheBox 에서 제공하는 웹해킹 문제 이번 문제는 PHP Object Injection 과 관련된 문제이다. PHP Object Injection 은 PHP Serialize 취약점이라고도 불리는데 PHP 에서 unserialize() 함수를 사용할 때, 사용자 입력이 적절하게 필터링 되지 않을 경우 임의이 PHP Object 가 삽입되어 Command Injection, SQL Injection, Path Traversal 등과 같은 공격이 가능하게 되는 취약점이다. 문제 페이지에 들어가면 이런 화면이 나온다. 독개구리를 판매하는(??) 사이트인데 밑에 적혀있는 후기같은걸 보면 아내랑 같이 먹었다는 후기도 있다(???) 아무튼 이게 중요한게 아니고 웹 페이지 자체에는 아무런 기능이 없다. 조금..

[HackTheBox] LoveTok - 웹해킹 / Command Injection

HackTheBox 에서 제공하는 LoveTok 문제 웹해킹 문제로 Command Injection 취약점을 이용한 문제이다. 문제페이지에 접속했을 때 화면이다. You'll find love: 라고하면서 어떤 시간을 알려주고 있다. 아래쪽에 있는 Nah, that doesn't work for me. Try again! 이라는 문구는 위에 있는 시간이 마음에 들지 않을 때 누르는 버튼이다. 버튼을 누르면 URL이 /?format=r 이라고 바뀌면서 시간도 같이 바뀌게 된다. 주어지는 소스코드도 같이 살펴보자. TimeController.php 파일을 먼저 살펴본다. isset 으로 format 파라미터가 GET 요청에 있으면 그대로 쓰고, 없으면 r 값을 넣어준다. 이건 아까 빨간 버튼 눌러서 확인한 ..

[Root Me] PHP - Loose Comparison - 웹해킹 / MD5 Magic Hash

php의 약한 비교(Loose Comparison) 로 인해 발생하는 php magic hash 와 관련된 웹 해킹 문제이다. 문제 페이지에 접속하면 이런 화면이 나온다. seed 와 hash를 입력하는 칸이 있고, 옆에는 check 버튼이 있다. 뭔지 모르겠으니 일단 아래 source code 버튼을 눌러 소스코드를 확인해본다. source code 버튼을 누르면 이렇게 아래쪽에 소스코드가 출력된다. 이 부분부터 살펴본다. seed 에 입력한 값은 $s 에 저장되고, hash 에 입력한 값은 $h 에 저장된다. 각각의 변수에 저장되기 전에 sanitize_user_input 함수와 secured_hash_function 함수에 입력값을 먼저 넣어주는데, sanitize_user_input 함수는 정규식..

워게임/Root Me 2022.10.25

[CakeCTF] CakeGEAR - 웹해킹 / PHP Type Confusion

PHP 와 관련된 웹해킹 문제 난이도가 warmup 이라고 되어있는데 마냥 쉽지만은 않은 문제였다. 문제 페이지 주소와 함께 문제 소스코드도 같이 주어졌다. 문제 페이지에 접속해보면 이런 화면이 나온다. CakeWiFi 로그인 페이지가 나오는데 시험삼아 admin / admin 으로 입력해봤더니 역시나 Invalid credential 이라면서 접근이 거부됐다. 문제 소스코드로는 이렇게 세 파일이 주어진다. 이중 Dockerfile 은 문제 환경 구성을 위한것이니 제외하고 실질적으로 PHP 코드는 admin.php / index.php 에 들어있다. 먼저 admin.php 의 php 부분만 잘라와 봤다. $_SESSION 이 admin 인지 === 을 써서 강한 비교를 수행하고, 만약 맞으면 /flag...

CTF/웹해킹 2022.10.08

[Root Me] Command injection - Filter bypass - 웹해킹 / RequestBin

예전에 풀었던 Command injection 문제의 업그레이드 버전이다. (https://hackingstudypad.tistory.com/74) 이전 문제 풀이를 읽어보면 이해하는데 조금 더 도움이 될것같다. 10점에서 30점으로 점수가 팍 오른 두번째 문제 그만큼 생각을 좀 해야한다. 문제의 목표는 웹페이지의 취약점을 찾아 exploit 하는것이다. 플래그는 index.php 파일안에서 찾을 수 있다고 한다. 문제페이지에 들어가면 입력창이 하나 있고, 제출 버튼이 나온다. 입력창에는 기본으로 127.0.0.1이 들어가 있다. 일단 먼저 제출버튼을 눌러본다. 제출을 누르면 Ping OK 라는 문구가 출력된다. 이전 문제는 ping 127.0.0.1 -c 3 명령어의 실행 결과가 그대로 출력됐는데, 이..

워게임/Root Me 2022.08.09
반응형