분류 전체보기178 1090 - 체커 step 1더보기모든 칸에 대해서 해당 칸에 체커가 1, 2, ..., $N$개가 있기 위한 최소 이동 횟수를 알면 문제는 쉽게 해결이 가능합니다. 여기서 모든 칸이 아니라 특정 칸으로 줄이려면 어떻게 해야 할까요?step 2더보기가로와 세로는 따로 계산할 수 있습니다.체커가 판에 놓여있다고 해봅시다. 빨간색이 체커입니다. 체커를 기준으로 가로, 세로 선을 그어주었습니다.만약 아래 그림에서 초록색 위치에 $N$개가 모일 때의 이동 횟수를 구했다고 합시다.그러면 여기서 초록색 점이 한칸 오른쪽으로 이동했다고 생각해 봅시다.만약 이동 횟수가 줄었다면 초록 점은 답이 될 수 없습니다.만약 이동 횟수가 늘었다면 초록 점이 왼쪽으로 갈 때는 이동 횟수가 줄어든다는 뜻입니다. 그렇다면 초록 점은 답이 될 수 없습니.. 2024. 7. 11. dvwa xss 공격 xss(크로스 사이트 스크립팅)공격은 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이라고 합니다. 가끔 학교 게시판 같은데 가면 제목이 혼자 이상하게 되어 있는 게시글이 있는데 이게 xss 공격입니다. 한번 실습해 보도록 하겠습니다. dvwa의 xss stored로 갑니다. 여기 들어가면 게시글 같은 게 보입니다. 여기에 글을 적으면 사람들에게 보여집니다. 그럼 message에 helo을 입력하면 어떻게 될까요?이제 여기에 alert("1");를 적어봅시다.그럼 이 페이지에 오는 사람들은 이런 알림을 받게 됩니다. 여기에서 단순한 알림이 아니라 악성 코드가 실행되면 정말 좋을 것 같습니다. 터미널에서 apt install beef-xss를 입력해 봅시다. xss 공격을 하기 쉽게.. 2024. 7. 9. dvwa file inclusion 저희는 웹 개발을 할 때 자주 쓰는 파일들을 만들어 두고 그 파일을 불러와 사용하는 경우가 있습니다. 예를 들면 아래 그림의 윗부분을 모든 페이지마다 만들려면 너무 힘듭니다. 만약 메뉴가 하나라도 추가되면 모든 페이지를 다 수정해 줘야 합니다. 이를 막기 위해 미리 메뉴를 만들어 두고 그 파일을 불러오는 것입니다. 그렇다면 불러오는 파일을 저희가 지정할 수 있다면 악성 코드를 실행할 수도 있을 것입니다. dvwa의 file inclusion으로 가봅시다. 위의 경로를 보면 page=include.php가 있는 것을 볼 수 있습니다.(물론 이렇게 대놓고 있는 경우는 없을 것입니다.) include.php를 /etc/passwd로 바꿔 봅시다.위에 유저 정보들이 쭉 나오는 것을 알 수 있습니다. 그럼 이 전.. 2024. 7. 8. dvwa 파일 업로드 취약점 virtual box에서 dvwa와 kali 리눅스를 실행합니다.dvwa에서 ifconfig를 입력해서 ip를 알아내고 kali 리눅스에 입력합니다.id는 admin password는 password로 바꿔서 로그인 하고 security level을 low로 바꿔줍니다. 이제 왼쪽 탭에서 upload 탭을 누르면 모든 준비가 끝납니다. leafpad를 쓰든 vi를 쓰든 해서 test_php.php 파일을 만듭니다. 해당 파일에를 입력해 줍니다. 이제 이 파일을 업로드 해 줍니다. 아주 친절하게 어디에 업로드가 되었는지 다 알려줍니다. 해당 경로로 들어가 봅시다.저희가 올린 파일이 실행되는 것을 볼 수 있습니다. 만약 hello가 아니라 악성 코드가 들어있다면 저희는 이 사이트를 털 수 있습니다. 터미널에.. 2024. 7. 7. dvwa sql injection 저번에 구축한 dvwa 실습 환경을 실행하고 ifconfig를 터미널에 입력해 줍니다. 그렇게 나온 ip을 브라우저에 입력해 주고 id에 admin, password에 password를 입력해 줍니다. 그리고 왼쪽에 있는 sql injection으로 들어가 줍니다. 유저 아이디를 넣으면 해당 정보가 나오는 창인 것 같습니다. 1을 넣어봅시다.아마 sql 쿼리가select * from user where id='{입력}' 이런 형식일 것 같네요. 그럼 입력으로 1' or '1'='1을 넣으면 어떻게 될까요? select * from user where id='1' or '1'='1' 이 되면서 모든 정보를 출력할 수 있습니다. 2024. 7. 6. 30294 - Flea 문제 번역더보기$N*M$크기의 격자 칸에 벼룩을 잡기 위한 트랩을 만들어 두었습니다. 이 트랩에는 약한 방향(상, 하, 좌, 우)이 있어 해당 방향으로 벼룩이 도망갈 수 있습니다. 벼룩의 최대 점프력은 $K$입니다. 벼룩이 $N*M$ 칸을 벗어나면 탈출했다고 표현합니다.벼룩이 여러 번 점프를 해서 탈출할 수 있는 칸의 개수를 모두 구하십시오.step 1더보기각 격자칸을 정점으로 생각합니다. 벼룩이 칸 $A$에서 칸$B$로 이동할 수 있다면 $B$에서 $A$로 가는 간선을 그려줍니다. 탈출할 수 있는 칸을 전부 구한 다음 그 위치에서 BFS를 돌리면 답을 구할 수 있습니다.step 2더보기각 칸마다 $K$개의 간선이 나올 수 있으므로 $N*M*K$의 시간이 필요합니다. 하지만 이러면 시간초과가 나옵니다.다.. 2024. 7. 5. 이전 1 ··· 16 17 18 19 20 21 22 ··· 30 다음