Wargame Site/SQL injection
-
|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
-
|Lord of SQL_injection| #15 AssassinWargame Site/SQL injection 2019. 2. 13. 16:43
세번째 줄 마지막 문제이다. 얼핏보기에 탈론이랑 비슷하게 생겼다 고고씽 15단계 문제 assassin 이다. like 에 관한 문제이다. 11번 문제 Golem 에서도 다뤄봤던 like 를 잘 활용하면 해결할 수 있을 것 같다. 하지만, 이 문제가 가지는 단점이 있다. 그것은 id 에 대한 언급을 할 수 없다는 점이다.pw 필드 자체만을 보고 비교하는 것이기 때문에 guest 에 대한 pw 를 지칭하는지, admin 에 대한 pw 를 지칭하는지에 대한 것인지를 명시해줄 수 없다. 만약 guest 와 admin 의 패스워드가 같다면 때에 따라 guest 가 admin 을 가려버리는 현상이 있을 수 있다. 이 때 '% 와 _' 를 적절히 활용하면 문제에 접근할 수 있지 않을까?처음으로 시도했던 방법은 '%{..
-
|Lord of SQL_injection| #14 GiantWargame Site/SQL injection 2019. 2. 13. 15:11
뭔가 어설픈 거인 그림 문제이다 오늘은 세번째 줄을 다 해결하고 노트북을 덮으려고 한다~ 얼른 문제를 확인해보자 고고~ 14단계 문제 giant 이다. shit 이라는 인자를 받고 있는데, 1글자여야 한다는 조건이 걸려있다. from 다음으로 바로 prob_giant 가 있는 걸로 보아 shit 에는 공백을 대체할 만한 무언가가 들어가 주어야한다. 5단계 문제의 확장 문제인 것 같다. 조건을 자세히 내다보면 %0a(\n), %0d(\r), %09(\t), %20(' ')을 막고있다. 하지만 공백을 막기에는 부족한 것 같다. 앞서 5단계 문제 Wolfman 의 내용을 생각해보면 공백을 우회하는 방법은 더 있었다. 그것을 활용하면 금방 해결될 것같다. WolfMan 으로 이동 짜잔!! 이제 3번째 줄의 마지..