분류 전체보기
![Challenge 18 (100pt)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTPviv%2FbtqD4ziwQjf%2FbDi8ALv4j6ACcu3MLpmKJ1%2Fimg.png)
Challenge 18 (100pt)
sql injection 문제다. 제출링크가 있고 get 방식으로 no라는 변수에 넘겨준다는 것을 확인할 수 있다. 밑에줄에는 result 도 출력해준다. 소스를 한번 보자. SQL INJECTION RESULT
![Challenge 26 (100pt)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjqwDn%2FbtqD2Hn1StW%2F9pWMzpUUOckuJeUPUaXSi0%2Fimg.png)
Challenge 26 (100pt)
view-source Get['id'] 값이 admin이면 문제가 풀린다. 그대로 admin을 넣어주게 되면, if문의 preg_match에서 걸린다. $_GET['id'] 를 urlencode 해준다. urlencode 해준 값이 admin이 되어야 하기 때문에 admin=%61%64%6d%69%6e 이다. 이걸 한번 더 인코딩 해주기 때문에, %61%64%6d%69%6e를 변환해서 ?id=%2561%2564%256d%2569%256e 이렇게 넣어주면 된다. clear!
![Challenge 38 (100pt)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiwlI9%2FbtqD2bWSSgH%2F0toch1h9R2jgKm1YuftXzK%2Fimg.png)
Challenge 38 (100pt)
POST 방식으로 입력받는 창이 존재한다. 어쩌라는 건지 감이 안온다. 소스페이지를 보자 LOG INJECTION 저기 admin 페이지의 존재를 주석에서 말해주고 있다. 일단 입력값으로 준다는 것 말고는 별다른게 없어보이니까 admin 페이지로 가보자. admin으로 로그인 해야 된다고 설명에 나와있다. 이전 페이지로 가서 admin을 입력해보자. -> you are not admin 이라는 문구가 뜬다. admin을 입력값으로 받지 못하는거 같은데, 입력값을 다음과 같이 주면 되겠당 아무값.....+개행+ip+admin 개행값을 고민하고 있는데, \n %0a 같은 문자들이 먹히지 않는다. 그래서 input 창의 태그값을 textarea 로 바꾼 뒤, 개행을 넣어서 입력해 주었다. 그리고 admin 페..
LOS -rubiya : Orc
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello 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"); highlight_file(__FILE__); ?>solve..
![LOS - rubiya : Goblin](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPqkkg%2FbtqDWVuj8eo%2FZL3ctDWbFveOvZKbSkgllk%2Fimg.png)
LOS - rubiya : Goblin
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("goblin"); highlight_file(__FILE__); ?>id 값이 admin이면 풀리는 문제.' (quote) 가 필터링 되는 문제. -> 문자열로 주지말고 hex 값으로 주면 된다.no 라는 변수를 이용해서 guest라는 id 값을 admin으로 바꿔줘야한다no 값에 0을 넣어주고 다시 id에 값을 주자.?no=0or%20id=0x61646D696E
![LOS -rubiya : Cobolt](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOh0NV%2FbtqDY171p99%2FWbRUPxvrBW1KbSWSmaB831%2Fimg.png)
LOS -rubiya : Cobolt
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id'] == 'admin') solve("cobolt"); elseif($result['id']) echo "Hello {$result['id']}You are not admin :("; highlight_file(__FILE__); ?>이전 문제와 비슷한 필터링이다. if($result['id'] == 'admin') solve("cobolt"); 여기서 result 의 id 값이 admin 이면 문제가 풀린다.pw 부분에 걸려있는 것은 md5 해쉬로, 암호화다. 굳이 저기까지 손댈 필요 없다는 의미로 받아들이면 될듯 하다.다른 아이..
LOS - rubiya : Gremlin
query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("gremlin"); highlight_file(__FILE__);?>필터링 항목 : id, pw 에 "prob" "_" "." "()" 사용 불가능. -> No Hack ~_~result query 에 id 값이 존재하면 된다.?id='or 1=1 %23-> id= 공백 or "참" 이기 때문에, query 가 의미하는 것은 "Select id from prob_gremlin" 과 같은 의미이다. -> %23는 #으로, 한줄 주석을 의미한다. $_GET['id'] 이후의 query 를 주석으로 만들어서 무의미하게 작용하..
![Challenge 15 (old) _50pt](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO8OOa%2FbtqDWVG3tAa%2FaiP7Yx99ApE5qb1b3lYVdk%2Fimg.png)
Challenge 15 (old) _50pt
문제에 접속하면 "access denied" 라는 alert 창이 뜨면서 팅긴다. Chrome 기준으로 설명하자면 javascript 를 허용-> 차단 으로 바꿔주게 된다면, 아무것도 뜨지않는 빈 화면을 마주할 수 있다. 개발자 도구로 들어가서 어떤 정보가 있는지 확인해 보도록 하자.(F12) document.write( "[Get Flag] "); 라고 쓰여져 있는 부분을 보면. HTML 의 a 태그임을 알 수 있다. 1) document.write는 javascript로 C언어의 printf 같은 역할을 해준다고 하면 이해하기 쉬울 것 같다. 2) : 하이퍼 링크를 걸어주는 태그 사용양식 __링크이름__ -> 부가적인 부분이 있지만 지금 짚고 넘어가야 하는 것은 이정도면 충분하다. 그럼 이제 문제 이..