
100) exit("HeHe"); // prob_umaru 테이블에 저장된 flag 값 조회 $realflag = @mysql_fetch_array(mysql_query("select flag from prob_umaru where id='{$_SESSION[los_id]}'")); // 임시 테이블(prob_umaru_temp)을 만들고, prob_umaru의 데이터를 임시테이블에 넣는다. @mysql_query("create temporary table prob_umaru_temp as select * from prob_umaru where id='{$_SESSION[los_id]}'"); // 내가 입력한 값으로 임시테이블의 flag값을 수정한다. @mysql_query("update..
query : {$query}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_dark_eyes where id='admin' and pw='{$_GET[pw]}'"; $result = @mysql_fetch_array(mysql_query($query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("dark_eyes"); highlight_file(__FILE__);?>22번 Dark Eyes의 코드이다.21번 문제와 비슷한 유형이지만 필터링이 추가되어 더이상 if문을 사용할 수 없게 되었다. 21번을 풀 때 사용했던 select 1 union selec..
query : {$query}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_iron_golem where id='admin' and pw='{$_GET[pw]}'"; $result = @mysql_fetch_array(mysql_query($query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("iron_golem"); highlight_file(__FILE__);?>21번 irongolem의 코드이다.코드를 분석해보니, 쿼리 결과에 대한 반응은 따로 없고,쿼리 중 에러에 대한 반응만 있다. 이 에러에 대한 반응으로 SQL Injection을 때리면..

query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("dragon"); highlight_file(__FILE__); ?> 20번 dragon의 코드이다. 필터링 자체는 되는게 없으나, 우리의 입력값을 처리하는 부분이 주석처리되어있다.해당 문제는 생각보다 상당히 쉽게 클리어 할 수 있었다.#은 해당 라인만 주석처리하는 문자로, 우리가 개행문자를 이용해서 주석처리를 무효화 할 수 있다. 개행문자를 이용하여 위 처럼 쿼리를 만들어주면 된다. ?pw=asd' %0a AND pw ='..
query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_xavis where id='admin' and pw='{$_GET[pw]}'"; $result = @mysql_fetch_array(mysql_query($query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("xavis"); highlight_file(__FILE__); ?>19번 X..

61번의 소스이다. (), union, select, challenge, from, , , by가 필터링되고 있다. 쿼리 부분을 보면 우리가 입력한 값에 대한 칼럼을 조회하고 있는 것을 볼 수 있다. 아마 이 문제는 mysql을 이제 막 배워가는 사람이 제일 잘 풀지 않을까 .... 하는 생각이 들었다 제일 처음 배울때 문자열 출력을 위해 select "admin" 이런식으로 해본 경험이 있을것이다. 그 결과는 admin이고, 컬럼명 또한 admin으로 나온다. 그러므로 우리는 alias라는 별칭 지정 기능을 활용하여 칼럼명을 id로 지정을 해주어야 한다. select "admin" id 위 쿼리의 결과는 admin이며 컬럼명 또한 id로 나오는 것을 볼 수 있을것이다. 그렇다면 문제 쿼리의 입력값 부분..

6) exit("No Hack ~_~"); // 쿼리 실행 $query = "select id from prob_nightmare where pw=('{$_GET[pw]}') and id!='admin'"; echo "query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); // 쿼리의 결과가 있으면 클리어 ! if($result['id']) solve("nightmare"); highlight_file(__FILE__); ?>18번 Night Mare 의 코드이다. 우선 문제와 관련 없는 문자와, 주석 처리를 할 수 있는 몇몇가지들을 필터링하고있고,pw의 길이를 6자 초과로 입력하지 못하도록 하고있다.그리고..

query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); if($result['id']) solve("succubus"); highlight_file(__FILE__); ?> 17번 Succubus의 코드이다.필터링 되는 것 자체는 별게 없다 ...하지만 저 필터링 우회가 너무 어려운 거시다 ㅎ $query를 보면 select id from prob_succubus where id ='입력값' and pw='입력값' 이렇게 입력값들이 '에 쌓여져있다.그렇다면 우리는 입력 값에 '를 넣어서 우리의 입력값을 조건절로 인식할 수 있도록 해야하지만,'가 필터링 되고 있는 것을 볼 수 있다. 그래서 한참 고민을 했다. '를 우회하는 방..
query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); if($result['id']) solve("zombie_assassin"); highlight_file(__FILE__); ?>16번 Zombie Assassin 의 코드이다.별로 특이한 점은 안보이고, ereg를 이용하여 필터링하고 있는 것 말고는 없었다. ereg함수 취약점에 대해 검색해봤는데,문자열의 처음에 NUL을 입력하면 문자열의 끝으로 인식하게 되어 NUL 뒤의 문자들은 검사하지 않는 취약점이 있다고 한다.(참고 : https://hackability.kr/entry/PHP-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%84%ED%84%B0%..
query : {$query}"; $result = @mysql_fetch_array(mysql_query($query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("assassin"); highlight_file(__FILE__); ?>15번 ASSASSIN의 코드이다.의외로 쉽게 풀었다.이렇게 푸는게 맞나? 싶을정도로 ㅎㅎ 문제를 풀기위해서는 우선 비밀번호의 길이를 알아야했다.like 구문에서 _를 이용해서 비밀번호의 길이를 알아낼 수 있었다.(like 구문에서의 와일드카드에 대해서는 아래 링크를 참고하세요.)( https://zetawiki.com/wiki/SQL_LIKE_%EC%..
- Total
- Today
- Yesterday
- 패스워드 복잡도 설정
- Cent OS 8
- SuNiNaTaS3번
- Webhacking.kr 회원가입
- 써니나타스 6번
- suninatas1번
- 써니나타스 8번
- SuNiNaTaS 6번
- Root원격접속차단
- Cent OS8
- webhacking.kr 58번
- SuNiNaTaS 22번
- SuNiNaTaS 7번
- SuNiNaTaS2번
- 써니나타스3번
- SuNiNaTaS 23번
- 패스워드 파일 보호
- Suninatas
- 써니나타스 7번
- 써니나타스2번
- webhacking.kr
- 써니나타스
- SuNiNaTaS 8번
- SuNiNaTaS 4번
- 계정 잠금 임계값 설정
- webhacking.kr 42번
- 써니나타스 22번
- 써니나타스 23번
- 써니나타스 4번
- 해시 디코딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |