web(98)
-
old-41 풀이
파일 업로드 폼이 만들어져 있습니다 https://www.php.net/manual/en/function.error-reporting.php PHP: error_reporting - Manual I always code with E_ALL set.After a couple of pages of I made this function to make things a little bit quicker. Unset values passed by reference won't trigger a notice. www.php.net 코드 상단 부분에 error_reporting()이라는 함수가 있어서 구글링을 해봤습니다 ini_set()과 함께 쓰이며, 에러 처리를 할 때 에러 문구와 파일 경로를 출력해 주는 역할을 한..
2024.02.17 -
old-44 풀이
노란색으로 적힌 주석을 보면 ls 명령어를 실행하라고 되어있습니다 문제 코드를 보면 id를 POST로 받아오고, 5글자까지만 사용한다고 합니다 system() 함수 안에 들어있는 "echo 'hello! " 문자열을 출력하고, 그 뒤에 '|'ls를 추가해서 명령어가 실행되도록 해줬습니다 (이렇게 하면 글자 수도 딱 5글자) 나온 경로로 이동해 보겠습니다
2024.02.15 -
old-34 풀이
검은 메인 화면에 debug me라는 알림 창이 떴습니다 소스를 확인해봐야겠습니다 javascript 코드가 있습니다 저 상태로는 디버깅하기 힘들 테니, Online JavaScript Beautiful로 코드를 보기 편하게 만들어주겠습니다 var a = ['RcOhTDV1Ew==', 'McOVwqpRBg==', 'c8K/w43DvcK8', 'SsOrTCF1CVDCgcKLEsKc', 'NsK/w4Bc', 'G1TDpwk=', 'AcKtwqfDlW7Dsw==', 'e3kkcQJfwoNFDEU9', 'QMOXDBo=', 'w5bCsWlh', 'eWY6bg8=', 'FnbDoEvDtl1LUkB7w4Q=', 'esOZTiPDsg==', 'bzfCkFfCtA==', 'ZmzDjHcn', 'PxLCm3LDvA=='..
2024.02.15 -
old-59 풀이
회원가입과 로그인을 할 수 있는 입력란이 보입니다 preg_match()랑 mysqli_query()가 있는 거 보니까 SQL Injection 문제인 것 같습니다 우선 lv가 "admin"일 때 문제가 풀린다고 합니다 그리고 lid와 lphone에는 addslashes() 함수로 이스케이핑을 해줍니다 그 아래쪽을 보면 phone은 20글자가 넘어가면 안되고, id에 admin이 포함되면 안 된다고 합니다 그리고 phone에는 admin, 0x, #, hex, char, ascii, ord, select가 필터링됩니다 이를 정리하면 id에 필터링을 우회하여 admin을 넣으면 됩니다 SQL에 있는 reverse() 함수를 활용하여 "admin" 대신 "nimda"를 넣어주겠습니다 (주석은 #이 필터링되므..
2024.02.15 -
old-48 풀이
파일을 올릴 수 있는 폼이 있습니다 일단 아무 파일이나 하나 올려보겠습니다 upload file을 누르면 올린 파일의 내용이 보입니다 제가 올린 파일은 test.txt입니다 ./upload/ 경로에 들어가 있네요 그럼 이번에는 올린 파일을 삭제해 보겠습니다 mode, time이 URL에 붙어 나오며, 파일은 정상적으로 삭제됩니다 upload 기능이 있으니, php 웹쉘도 하나 만들어서 올려보겠습니다 위와 같이 파일을 만들어서 업로드해봤지만, php 코드가 실행되지 않았습니다 혹시 SQL Injection이나 XSS일까 싶어, 기본 구문들을 다 넣어봤지만.... 전부 꽝이었습니다 파일을 삭제할 때 봤던 URL에서 mode와 time이 있었는데, 이게 힌트인가 싶어 이것저것 게싱으로 막 넣어봤습니다 (tim..
2024.02.12 -
old-02 풀이
코드를 확인해 봤는데 주석 2개가 달려있습니다 하나는 시간, 하나는 admin.php의 존재를 알려주는 문구였습니다 우선 admin.php로 접속해 보겠습니다 secret password를 입력하라고 합니다 그냥 아무 값(admin)이나 입력해 보겠습니다 wrong password라는 문구가 뜨네요 이 상태로 개발자 도구를 열어서 코드를 살펴봤는데, 딱히 힌트가 될만한 부분은 없었습니다 Application으로 들어가서 쿠키라도 살펴보겠습니다 time이라는 쿠키가 하나 있네요? 첫 화면에서 봤던 시간이랑 연관이 있는 것 같은데, 이 값을 1로 바꾸고 시간을 다시 확인해 보겠습니다 2070-01-01 09:00 까지는 고정인 것 같고, 그 뒤에 사용자가 입력한 쿠키 값이 출력되는 것 같습니다 (2070-0..
2024.02.11