Wargame Site
-
|Lord of SQL_injection| #23 Hell_fireWargame Site/SQL injection 2019. 2. 23. 14:00
이제 슬슬 Count Down 을 시작해야될 때가 다가온다. 23단계 문제 hell_fire 이다. 정렬에 관한 내용인 듯 하다. 우선 기본적으로 각 필드를 넣어봤다. email 을 알아내야하는 문제이니 뭔가 정렬하는 필드마다의 차이점이 있을 듯 싶었다. 역시 score 를 넣었을 때는 rubiya 가 위에 있는 것을 알 수 있다. 그렇다면 조건문을 활용해서 필드를 결정해주고, 출력결과를 통해 조건문의 참 거짓을 판단하면 되지 않을까? 그 내용에 따라 '100' 또는 '200' 을 검출해주면 될 것 같다 의외로 로직이 단순하다!! 짜잔!! Clear 하게 Clear~~ 오늘은 여기까지 풀고 다른 프로젝트를 해야겠다
-
|Lord of SQL_injection| #22 Dark_eyesWargame Site/SQL injection 2019. 2. 23. 13:19
후반부로 오면서 뭔가 문제 해결 속도가 느려졌다. 하지만, 쾌감?? 은 더 큰 거 같다 ㅎㅎ 오늘도 GO ! 22단계 문제 dark_eyes 이다. 우선 뭔가 기능을 많이 필터했다는 예감이 든다. 우선 앞서 봤던 case 문과 if 문의 사용이 불가한 상태에서 error 기반 SQL Injection 을 수행해야한다.그렇다면, 앞서 다뤘던 세 가지 방법 중에 마지막 방법을 사용하면 될 것 같다. 21 단계 문제 그랬더니 문제가 풀렸다 ㅎㅎ 짜잔!! 스무스하게 PASS ~
-
|Lord of SQL_injection| #21 Iron_golemWargame Site/SQL injection 2019. 2. 22. 15:24
이제 어느덧 세 줄 만 남겨 놓고 있는 상황 !! 스피드 하게 나가보자~ 21단계 문제 iron_golem 이다. PHP 를 분석해보니 이번에는 "Hello admin" 과 같은 안내문을 출력해주지 않는 단계이다.Blind SQL Injection 을 하기 위해선 사용자의 입력에 따라 화면이나 코드에 변화가 생겨야한다. if(mysql_error( )) exit(mysql_error( )); 다음과 같이 SQL Error 를 출력해주는 취약점이 존재한다는 것을 알 수 있다. sql 의 조건문과 관련된 함수를 사용해서 pw 에 대한 정보를 질의한 뒤 pw 에 대한 정보를 알아내면 될 것 같다. if( 조건 , 참일 때 실행 문장, 거짓일 때 실행 문장 ) 참일 때 실행될 문장을 SQL Error 를 발생하..
-
|Lord of SQL_injection| #20 DragonWargame Site/SQL injection 2019. 2. 20. 20:36
Xavis 에 쏟은 시간만 2일..뭔가 커다란 산 하나를 넘은 느낌이다.. 도전! 20단계 문제 dragon 이다. 이번에는 코드안에 주석이 달려있고, 그 뒤로 인자를 받도록 되어있다.그렇다면 이미 달려있는 주석을 없앨 수 없으니, 주석을 피해서 접근하도록 해야한다. # 은 한 줄 주석이라는 점을 알고 있다면 의외로 간단하게 해결될 수 있을 것 같다. This Point 를 잘 활용하면 될 것 같다. id = 'guest'# and pw='%0a and pw='' or id='admin' 와 같은 형태가 되도록 입력해주면 끝! 짜잔 !! Xavis 를 끝내니까 너무 쉬운 느낌이었다. 가볍게 PASS !!
-
|Lord of SQL_injection| #19 XavisWargame Site/SQL injection 2019. 2. 20. 17:52
요.녀.석. 만만치 않은 녀석이다 ... 19단계 문제 xavis 이다. 필터링된 것들도 별로없고, 처음에는 간단히 뭐야.. 쉽잖아? 라고... 생각했다. 왜냐하면 pw 를 ' or id='admin' and [확인할 조건들] 로 주면 끝나는 문제라고 생각했기 때문이다. 기존의 코드와 동일한 방법으로 접근해보았다. 하지만, 그 뒤로 출력된 문자는 없었다.. 이럴 경우는 어떻게 해야할까?? 우선은 URL 창에 다음과 같이 입력해보았다. pw 의 첫번째 글자의 ord 값이 5000 을 넘는다는 것이었다. 그래서 이런 저런 방법을 동원해보다가 hex로 바꾸는 방법을 생각해냈고, 실행결과 또한 빨리나왔다. Hex 가 될 수 있는 '0123456789abcdefghijklmnopqrstuvwxyz' 를 문자열로 ..
-
|Lord of SQL_injection| #18 NightmareWargame Site/SQL injection 2019. 2. 15. 23:30
얼른 Nightmare 를 클리어하고 금일 하루종일 배웠던 내용들을 정리해봐야겠다. 18번째 문제인 nightmare 이다. 우선 pw 의 최대 길이가 6 이라는 점으로 미루어보았을 때, pw 파라미터 하나만을 가지고 조건절을 True 로 만들면 된다는 것을 깨달았다. 우선은 괄호가 있기 때문에 ''(작은따옴표)' 과 ')' 이라는 문자는 꼭 들어가야 한다는 점을 catch 했다. 하지만 그 뒤로 어떻게 해결해야할지 막막했다. 막막할 땐 Googling 이지 ~ 그 결과 MySQL 에서 '모든 스트링'=0 은 True 를 반환한다는 사실을 알아냈다. 출처 : https://makandracards.com/makandra/6457-in-mysql-a-zero-number-equals-any-string (..
-
|Lord of SQL_injection| #17 SuccubusWargame Site/SQL injection 2019. 2. 14. 12:28
17단계 문제 succubus 이다. 1단계 문제 Gremlin 에서 풀었던 방식 중에 하나를 활용해서 해결하면 될 것 같다.'\' 를 사용해서 pw 항목의 처음 ' 까지를 id 로 받아버리자 !!그 뒤 or 로 묶어주든 union select 로 묶어주든 True 로 만들어 버리거나 id 로 들어가게 해주면 끝!! 짜잔!! Blind injection 을 안쓰는 문제들이 나와서 간단하게 해결되는 것 같다ㅎㅎ 가볍게 PASS~~!
-
|Lord of SQL_injection| #16 Zombie_assassinWargame Site/SQL injection 2019. 2. 14. 12:11
4 번째 줄까지 내려왔다 !! Los 얼른 끝내고 웹 보안 취약점 분석 포스팅을 시작해야겠다 오늘도 열공합시다아 16단계 문제 zombie_assassin 이다. 취약점이 존재하는 ereg 를 사용하고 있다.8 단계 문제 troll 마지막에 언급한 내용을 활용하면 쉽게 해결할 수 있는 문제이다. 짜잔!! ereg 에 대한 filter 를 우회한 이상 가만히 있을 수 없지 ㅎㅎ 다른 답안들이 엄~~~~~청 쏟아져 나올 수 있다. 이번문제는 개인적으로 ereg 이 %00 뒤의 내용은 검사하지 않는다는 점만 알았다면 금방 풀 수 있는 문제라고 생각한다. 가볍게 PASS