목록분류 전체보기 (135)
쉽고 깔끔하게
문제 https://los.rubiya.kr/chall/goblin_e5afb87a6716708e3af46a849517afdc.php 풀이 preg_match($pattern, $subject, [, $matches]) : 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함수 - $pattern : 문자열로 검색할 패턴 - $subject : 입력 문자열 - [$matches] : 사용 시 패턴에 매치되는 내용을 배열에 담아둠 따라서 얻을 수 있는 정보로는 no의 입력 값 필터링 규칙으로 다음과 같은 정보를 필터링한다는 것이다. 1) prob 2) _ 3) . 4) ( ) 5) ' 6) " 7) ` 이전 문제들과는 다르게 싱글 쿼터(')와 더블 퀴터(")를 필터링하고 있어 기존의 공격은 사..
문제 https://los.rubiya.kr/chall/cobolt_b876ab5595253427d3bc34f1cd8f30db.php 풀이 이번 문제는 1번 gremlin 문제와는 다르게 pw의 파라미터 값의 md5 암호화와 id의 값이 admin이어야만 하는 조건이 생겼다. preg_match($pattern, $subject, [, $matches]) : 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함수 - $pattern : 문자열로 검색할 패턴 - $subject : 입력 문자열 - [$matches] : 사용 시 패턴에 매치되는 내용을 배열에 담아둠 따라서 얻을 수 있는 정보로는 id와 pw의 입력 값 필터링 규칙으로 다음과 같은 정보를 필터링한다는 것이다. 1) prob 2)..
문제 https://los.rubiya.kr/chall/gremlin_280c5552de8b681110e9287421b834fd.php 풀이 preg_match($pattern, $subject, [, $matches]) : 문자열 안에서 특정한 정규식 패턴의 존재 여부를 찾는데 유용한 함수 - $pattern : 문자열로 검색할 패턴 - $subject : 입력 문자열 - [$matches] : 사용 시 패턴에 매치되는 내용을 배열에 담아둠 따라서 얻을 수 있는 정보로는 id와 pw의 입력 값 필터링 규칙으로 다음과 같은 정보를 필터링한다는 것이다. 1) prob 2) _ 3) . 4) ( ) 싱글 쿼터(')나 더블 쿼터(")는 필터링하지 않는 것으로 보아 SQL Inejction의 가장 기본적인 공격..
문제 https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차_부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 간단한 문제이다. count 크기만큼의 배열에 price * 배열의 위치를 해준 뒤 계산 된 값을 sum() 함수를 통해 더해주..
문제 https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. ※ 해당 문제에서 주의할 점은 signs의 값이 문자열로 'true', 'fa..
문제 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 문제를 읽고 다음과 같은 해결 방법을 떠올렸다. 딕셔너리를 이용하여 key-value 쌍으로 서로 대응하는 데이터를 빠르게 찾기 딕셔너리의 key-value..
문제 https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때, s가 표현하는 튜플을 배열에 담아 return 하도록 solution 함수를 완성해주세요. 문제를 읽고 해결해야 하는 순서대로 정리하면 다음과 같다. 문자열이 "{{2}, {2,1},{2,1,3},{2,1,3,4}}" 처럼 주어지기 때문..
문제 http://pwnable.kr/play.php 아빠가 오늘 멋진 MD5 해시 충돌에 대해 말씀해주셨어요. 저도 그런 거 하고 싶어요! 문제를 해결하기에 앞서, • 해시함수 (Hash Function) : 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 출력하는 일방향 함수 → 메시지가 다르면 해시값도 다르다는 특징을 가지고 있음 • 해시 충돌 (Hash Collision) : 2개의 다른 메시지가 같은 해시값을 갖는 것 → 해시함수가 유한한 가짓수의 출력값을 생성하는 경우 해시 충돌이 발생함 터미널을 이용하여 ssh col@pwnable.kr -p2222에 접속합니다. (password : guest) ls -l 명령어를 통해 현재 디렉터리에 존재하는..