일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 세션
- sql injection
- XSS
- css
- Python
- JWT
- 쿠키
- 웹개발
- blind sql injection
- Cross Site Request Forgery
- union sql injection
- lord of sql injection
- sql injection point
- 로그인페이지
- cookie 탈취
- MySQL
- CTF
- csrf
- 과제
- 모의해킹
- Error based sql injection
- Reflected Xss
- cors
- 게시판 만들기
- php
- file upload
- Los
- JS
- 로그인
- lord of sqli
- Today
- Total
목록모의해킹 (86)
Almon Dev

LOS 풀이 troll 풀이1. 코드 분석GET 메서드 id 파라미터를 쿼리에 삽입한 뒤 쿼리 결과의 id가 admin이면 문제가 풀립니다.$query = "select id from prob_troll where id='{$_GET[id]}'";$result = @mysqli_fetch_array(mysqli_query($db,$query));if($result['id'] == 'admin') solve("troll"); admin이라는 문자열을 필터링합니다.그런데 i 플래그를 붙이지 않아서 대소문자를 구분합니다.mysql은 대소문자를 구분하지 않기 때문에 Admin과 같이 대문자를 섞으면 우회가 가능해 보입니다.if(preg_match('/\'/i', $_GET[id])) exit("No Hack ..

LOS 풀이 orge 풀이1. 코드 분석GET 메서드의 pw와 쿼리 결과의 pw가 일치하면 문제가 풀립니다.그렇다면 admin 계정의 실제 비밀번호를 알아야 풀 수 있는것 같습니다.$_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge"); 이번에도 or 과 and를 필터링 하기 때문에 || 와 &&를 활용해야 합니다.if(preg_match('/..

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문자를 화면에 출력하며 문제..