일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 보안 패치
- CTF
- 로그인페이지
- 웹 개발
- JS
- 웹 해킹
- 게시판 만들기
- Error based sql injection
- 보고서
- MySQL
- 웹개발
- sql injection
- 세션
- 로그인
- Los
- php
- 증적 사진
- XSS
- 모의해킹
- FridaLab
- union sql injection
- sql injection point
- csrf
- file upload
- Python
- 문제 풀이
- lord of sql injection
- blind sql injection
- 과제
- cookie 탈취
- Today
- Total
목록전체 글 (127)
Almon Dev

LOS 풀이 darkelf 풀이1. 코드 분석GET 메서드의 pw 파라미터가 쿼리에 삽입이 되고 쿼리 결과의 id가 admin인 경우 문제가 풀립니다.$query = "select id from prob_darkelf where id='guest' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("darkelf"); or과 and를 필터링합니다.mysql에서는 or과 and를 대체할 ||나 &&를 이용하면 우회할 수 있습니다.if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); i..

LOS 풀이 wolfman 풀이1. 코드 분석GET메서드의 pw 파라미터가 쿼리에 삽입되며쿼리의 결과 id가 admin일 경우 문제가 풀립니다.$query = "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("wolfman"); 공백을 필터링하는 부분이 추가되었습니다.if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/ /i', $_GET[pw])) exit("No wh..

LOS 풀이 orc 풀이1. 코드 분석이번 문제를 풀기 위해서는 입력한 pw파라미터의 값과 db에서 가져온 pw의 값이 일치해야 합니다.그렇기 때문에 실제 admin 계정의 비밀번호를 알아내야 하는 것 같습니다.$_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query));if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); prob _ . ()를 필터링합니다.if(preg_match('/prob|_|\.|..

LOS 풀이 goblin 풀이1. 코드 분석GET 메서드로 no 파라미터에 값이 쿼리에 삽입되고 쿼리의 결과중 id가 admin인 경우 문제가 풀립니다.$query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}";if($result['id'] == 'admin') solve("goblin"); prob _ . () 뿐만 아니라 ' " ` 까지 필터링이 됩니다.if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit(..

LOS 풀이 cobolt 풀이1. 코드 분석이번 문제는 GET 메서드로 id와 pw 파라미터를 입력하면 쿼리에 삽입이 되며쿼리의 결과 id가 admin일 경우 문제가 풀립니다.pw의 값을 md5로 해시화를 하고 있습니다.$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";$result = @mysqli_fetch_array(mysqli_query($db,$query));if($result['id'] == 'admin') solve("cobolt"); gremlin 문제와 똑같은 필터링을 하고 있습니다.if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No ..

LOS 풀이 gremlin 풀이1. 코드 분석GET메서드로 id와 pw를 파라미터로 보내면 쿼리에 포함되는 형식으로 보입니다.쿼리의 결과 중에 id가 있으면 solve("gremlin") 함수를 실행해서 문제를 성공적으로 풀 수 있습니다.$query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";$result = @mysqli_fetch_array(mysqli_query($db,$query));if($result['id']) solve("gremlin"); 입력된 파라미터를 필터링하는 부분입니다.preg_match() 함수와 정규식을 이용해서 특정 패턴을 검색하고 발견될 경우No Hack문자를 화면에 출력하며 문제..

ctf 문제 풀이 Steal Info 2 풀이1. XSS 포인트 찾기공지 사항 작성에 내용 부분에서 특수문자를 처리하지 않고 저장합니다. alert(1) 스크립트를 삽입하고 공지 사항에 접근해 봅니다. 2. 스크립트 삽입하기관리자 계정의 마이페이지 정보란을 가져오는 것이 목적이기 때문에마이페이지에 접근해서 DOM 구조를 파악해 봅니다. hori 클래스인 div안에 input이 하나 있는 구조로 이루어져 있습니다.같은 구조를 가진 input태그들 중 두 번째 태그가 정보란입니다.document.querySelectorAll('.hori input')[1] iframe을 삽입하고 마이페이지 정보란을 가져오는 스크립트를 생성합니다.const frame = document.querySelector('#fram..

ctf 문제 풀이 Steal Info 풀이1. XSS 포인트 찾기공지 사항 작성에서 내용 부분에 특수문자를 처리하지 않고 출력하는 것을 확인했습니다. alert(1) 스크립트를 삽입하고 실행되는 것을 확인하였습니다. 2. 스크립트 삽입하기xss 취약점이 있는 곳과 가져올 데이터가 있는 곳이 다르기 때문에공지 사항을 읽을 때 iframe 태그를 이용해서 다른 사이트를 불러와 데이터를 가져오겠습니다. 우선 중요정보가 있는 사이트와 구조가 같은 사이트에서 데이터가 있는 태그를 찾아야 합니다. card-text라는 이름의 클래스를 가진 태그 중 두 번째 태그에 필요한 정보가 담겨있습니다. 삽입할 스크립트와 iframe태그를 만들고 삽입하겠습니다. 이제 해당 게시글에 접근하면 세션 정보를 이용해서 마이페이지에 ..