WarGame
[Lord of SQL Injection] goblin 3번 풀이
[Lord of SQL Injection] goblin 3번 풀이
2021.10.10[ 문제접근 ] 1. 쿼리 : id와 no파라미터가 존재하고, 이를 통해 DB를 조회한다 2. $_GET[no] : GET방식을 통해서 no를 입력을 받는다 3. 5,6번 줄에서 $_GET[no] 을 통해 입력받은 데이터에 ' , " 를 검사하고 필터링함 4. if($result['id'] == 'admin') : 질의 결과 id가 admin일 경우 solve("goblin")을 시켜줌 => 방법 1 : id에 admin을 문자열 인코딩을 통해 입력 => 방법 2 : id에 admin이라는 문자열을 내장함수를 사용해 입력 [ 문제풀이 ] 더보기 지금까지 문자열을 넣을때 사용했던 방식인 '문자열'을 사용해서 문자열을 넘겨주려 했으나, ' " 을 필터링하고 있다. 따라서 우리는 기존방식이 아닌 다른 방식으로..
[Lord of SQL Injection] cobolt 2번 풀이
[Lord of SQL Injection] cobolt 2번 풀이
2021.10.10[ 문제접근 ] 1. 쿼리 : id와 pw파라미터가 존재하고 pw를 md5 암호화, 이를 통해 DB를 조회한다 2. $_GET[id], md5('{$_GET[pw]}') : GET방식을 통해서 id와 pw를 입력받고 pw는 md5암호화 3. if($result['id'] == 'admin') : 쿼리문 질의 결과의 id가 admin일 경우 solve 시켜준다 > 방법 1) md5를 우회해서 입력 > 방법 2) id에서 admin을 입력 후 주석처리하여 뒤에 존재하는 조건을 무시 [ 문제풀이 ] 더보기 : ?id=admin%27%23 정답1은 주석을 활용한 방법이다. ?id=admin'# admin뒤에 '를 붙여 문자열을 탈출하고 #을 적어줌으로써 뒤에 존재하는 쿼리를 모두 주석처리할 수 있다. 하지만 ?..
[Lord of SQL Injection] gremlin 1번 풀이
[Lord of SQL Injection] gremlin 1번 풀이
2021.10.10[ 문제접근 ] 1. 쿼리 : id와 pw파라미터가 존재하고, 이를 통해 DB를 조회한다 2. $_GET[id], $_GET[pw] : GET방식을 통해서 id와 pw를 입력을 받는다 3. if($result['id']) solve("gremlin"); : DB에 id와 pw가 일치하고 그 결과가 참일경우, 즉 쿼리 질의결과 참인경우 solve(gremlin)를 시켜준다 => 정리 : 우리는 쿼리문을 통한 질의에서 항상 참을 반환하도록 하면 된다 [ 문제풀이 ] 더보기 : ?id=0&pw='1'or'1 select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}' {$_GET[id]}와 {$_GET[pw]} 자리에 우리가 입력한 값이 들어..
basic_exploitation_002
basic_exploitation_002
2021.04.07이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
Basic_exploitation_000
Basic_exploitation_000
2021.04.03이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
Write-Up: [HackCTF][Web] - Hidden
Write-Up: [HackCTF][Web] - Hidden
2021.03.22한번 문제에 접속해봅시다!. 음 5번 파일에 플래그가 있다고 하네요.. 그래도 한번 소스를 볼까요? 각 버튼을 누르면 get방식을 통해 id값을 value로 전송을 하네요 그러면 url에 id를 5로 넘기면 플래그가 나올 것 같네요 다음과 같이 한번 요청을 해볼까요? ctf.j0n9hyun.xyz:2023/?id=5 더보기 플래그가 바로 나오네요
Write-Up: [HackCTF][Web] - /
Write-Up: [HackCTF][Web] - /
2021.03.22이 문제에 들어가 보면 로봇 하나와 Hidden Flag만 나와있네요 페이지 소스를 확인하니 특별하게 숨겨진 내용은 없는데 그럼 어찌 풀라는 거지.. 여기서 로봇을 가지고 힌트를 떠올려야 한다! 더보기 저는 이 글을 쓰기 하루 전에 직접 만든 웹사이트에 보안을 위해 찾아봐서 여기에 사용된 기술이 바로 생각이 났지만 처음 봤다면 막막했을 것 같네요.. 바로 본론으로 넘어가면 이 문제는 robots.txt를 사용하는 문제입니다!+ [ robots.txt 란? ] robots.txt는 검색로봇에게 사이트 및 웹페이지를 수집할 수 있도록 허용하거나 제한하는 국제 권고안입니다. 즉 웹사이트에 접근하는 로봇을 제어하기 위한 규약이라고 생각하면 됩니다. 자세한 내용은 여기를 참고하세요! 그러면 robots.txt를 ..
Bandit [Level 1 -> Level 2]
Bandit [Level 1 -> Level 2]
2021.02.23SSH Information Host: bandit.labs.overthewire.org Port: 2220 이전 글에서는 bandit1의 패스워드를 구했었다. 이제 구한 패스워드를 가지고 문제를 풀어보자. 더보기 bandit1 password boJ9jbbUNNfktd78OOpsqOltutMc3MY1 문제를 보면 다음 레벨의 패스워드는 홈 디렉토리에 들어있는 ' - ' 이 파일 안에 있다고 한다. 아래 힌트는 이전에 올린 문제에 나온 내용이므로 모르는 부분은 이전 글 참고 (lD : bandit1 / PASSWORD : boJ9jbbUNNfktd78OOpsqOltutMc3MY1 ) 아이디와 패스워드를 입력해서 로그인! 로그인 후에 홈 디렉토리에 어떤 파일이 있는지 ls -al 명령어를 통해 확인하자. ..
Bandit을 풀면서 리눅스와 친해지자! [Level 0 -> Level 1]
Bandit을 풀면서 리눅스와 친해지자! [Level 0 -> Level 1]
2021.01.15요즘 시스템과 서버를 공부하면서 리눅스 명령어를 손에 익히기 위해 찾아보다 좋은 워게임 사이트를 발견했다. 바로 "Over the Wire"에서 제공하는 Bandit이라는 워게임 사이트로, 이는 SSH를 통해 워게임 서버에 접속한 후 서버내에 숨겨진 다음 문제의 비밀번호를 찾는 방식이다. 더보기 [ https://overthewire.org/wargames/bandit/ ] Level 1 ] 문제를 보니까 다음 단계로 넘어가기 위한 패스워드가 홈 디렉토리에 있는 readme 파일에 들어있다고 한다. 문제를 풀기 위한 힌트로 ls,cd,cat,file,du,find라는 명령어를 받았다. 이 명령어들의 용도는 밑에 있는 표를 참고 ls ls -a ls -l 현재 디렉토리에 존재하는 파일을 보여준다. 숨겨진 ..