스터디

Study/알고리즘

[알고리즘] 그리디 알고리즘 (2)

동빈나쌤 강의 참고: https://youtu.be/2zjoKjt97vQ ✔️ 문제 풀어보기 - 모험가 길드 이번에는 모험가 길드라는 문제이다. 지난 시간에 이어서 해당 영상에서 풀지 않았던 마지막 문제를 이번 글에서 풀어보려고 한다. 우선 문제 해결을 위해서 X는 1차원 배열의 형태로 받는데, sort()를 이용하여 정렬이 필요하다는 생각을 했다. 예를 들어서 [2 2 3 2 1 4 5] 라는 형태의 입력을 받은 리스트가 [1 2 2 2 3 4 5] 와 같은 형태로 정렬된다면 가장 작은 수부터 그룹을 묶어 나가면서 성립되지 않은 그룹은 마을에 냅두면 될 것이다. N = int(input()) X = list(map(int, input().split())) result = 0 X.sort() 근데, 막상..

보안/LOS

[LOS] frankenstein

LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("frankenstein"); pw를 알아내야 풀리는 문제로 보인다. 현재 아이디가 frankenstein으로 설정되어 패스워드를 받고 있고, union 구문과 괄호가 필터링으로 걸려있다. 하나의 힌트로는 db 에러가 발생하였을 때, error라는 exit 하게 되는데 이것을 바탕으로 Error Based Sql Injection을 시도해보면 좋을 것 같다. 현재 필터링 된 괄호는 case 구문으로 우회하는 방법이 있다고 한다. 다음과 같이 case 구문을 활용하여 sql..

보안/wargame

[webhacking.kr] old-01

wargame : https://webhacking.kr/ ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1; if($_COOKIE['user_lv']>3) solve(1); http 쿠키의 user_lv 값이 3 이상이면 해결이 아니라, 3보다 크고 4보다는 작은 값 즉, 3.1~9 숫자를 입력하면 될 것 같다. 간단하게 개발자 도구와 크롬 익스텐션 도구인 EditThisCookie를 통해 확인할 수 있다. 3.5라는 값으로 수정한 뒤 새로고침 해보자. 클리어! 화이팅 💪

보안/LOS

[LOS] blue_dragon

LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 여러 필터링이 걸려있는 모습이다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("blue_dragon"); 패스워드를 찾아야하는 문제로 보이고, id와 pw 값에 싱글쿼터와 백슬래쉬에 대한 필터링이 걸려있는 것으로 보인다. ???? 아무 생각없이 guest, guest 집어넣었는데 갑자기 일치했다.. 이걸 노리고 한게 아닌데,, 패스워드는 복잡하게 만들것,, 아무튼 앞서서 푼 문제들 중에서 해결할만한 방법이 쉽게 떠오르지 않아서 여러 sql injection 페이로드를 찾아보던 중 sleep을 활용한 time bas..

보안/LOS

[LOS] red_dragon

LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 주석으로 컬럼명을 확인하라는 내용도 달려있다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['no'] === $_GET['no']) solve("red_dragon"); no라는 것은 예상으로는 번호를 의미하는 것 같다. 번호가 일치하게 되면 즉, admin 번호를 입력하면 문제가 풀리게 된다. strlen 함수로 id 길이가 7 이상이면 exit 구문이 실행되므로 참고하도록 한다. 간단하게 id에 guest를 넣으면 아무것도 뜨지 않는다. no의 번호와 일치하지 않기 때문일 것이다. guest' #을 넣게 되면 strlen 함수에 걸리게 된다. 이전 문제에서 시도했던 union select 1, 2 ..

보안/LOS

[LOS] green_dragon

LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이전 order by에서 벗어나 이번에는 예전 문제들과 비슷하게 보인다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['id'] == "admin") solve("green_dragon"); 코드는 다음처럼 간단하지만, 예전 문제들과 다르게 코드의 양이 증가하였고 그만큼 복잡성도 올라간 것으로 보인다. 1) 일단 필터링에 온점, 싱글쿼터, 더블쿼터가 걸려있다. 2) id 결과가 존재하면, if문 내의 query2로 동작하게 된다. id와 pw를 둘 다 입력받을 수 있을때 사용할 수 있는 우회가 존재한다. 일단 어떠한 것이든 시도해보자. 이전 succubus 문제처럼 역슬래쉬를 활용해서 id 내 값을 문..

dDong2
'스터디' 태그의 글 목록 (3 Page)