Wargame Site
-
아는 동생의 SOSWargame Site/SQL injection 2019. 3. 8. 12:22
서울에서 1년 생활 동안 동아리 활동을 했던 동생이 내게 문제를 줬다. 다음을 해결해 달라는 부탁이었다. 나도 아직 잘 못하지만, 그 동안 LOS 를 통해 얻은 지식을 시험해볼 수 있는 좋은 기회일 것 같았다. 문제를 받자마자 POST 방식이라는 점이 보였고, 필터링 방식을 검토하다가 의문이 생겼던 것은"pw 만 필터되는 거라면 좀 허술한 것이 아닌가?" 였다. 왜냐하면 두번째 pw 의 필터 조건을 우회할 수 있는 방법이 너무 많기 때문이다. id 필드를 이용하더라도 금방 우회할 수 있는 구문이었다. 그리고, pw 를 이용하더라도 문제를 해결할 수 있을 거 같았다.if 와 sleep 을 활용하면 금방 해결될 것 같다. 짜잔!! 해결하는데 걸린 시간을 보니 그 동안 워게임을 헛으로 한게 아니구나 하는 생각..
-
|Lord of SQL_injection| #28 FrankensteinWargame Site/SQL injection 2019. 3. 5. 12:32
이것 까지 해결하면 4 문제만 풀면 끝난다!! 가보자~ 학창시절 별명이 프랑켄슈타인이었는데.... 우선 if(mysql_error()) 를 보니 Error 기반의 SQL Injection 인 것 같다. 하지만 우선, select 1 union select 2 를 사용할 수 없다. 따라서 다른 에러를 발생하는 구문을 떠올려야한다. 우선 조건을 사용해야하지만 '( ' 가 필터링 되어있으므로 if 를 사용할 수 없다. 이럴 때 생각나는 한가지 !!! 21번 문제 Iron_golem 에서 다뤘던 Case when then else end 문을 떠올려보자 그럼 then ?? else ?? 자리에 어떤 것을 넣어야할까? 도저히 구문을 못찾겠다..... 그래서 구글링을 해봤다 ㅎㅎ 그 결.과. MySQL 에선 9e3..
-
|Lord of SQL_injection| #27 Blue_dragonWargame Site/SQL injection 2019. 3. 4. 13:15
오늘 대학교 개학날이다 그래도 포스팅을 멈추지 않도록 신경써야 할 것 같다. 자 이제 5 ~ 6 문제만을 남겨두고 있는 상황이다 ㅎㅎ 가보자 ~ 우선 문제 구조가 평소와는 다르다는 것을 직감할 수 있었다. 일단 눈에 띄는 것은 NO Hack 문구가 나눠져있는 것 id 와 pw 의 제약조건만 봤을 때, 우선은 ' (작은따옴표) 가 필터링 되어있고, '\' 가 필터링 되어 있기 때문에 NO Hack 에 해당되지 않고 Blind sql injection 을 실행하는 건 어려워보였다. 10 분의 뻘짓의 결과 다른 종류의 인젝션 공격일 수도 있겠다는 생각을 했다. 시간기반 Injection 을 이용해보도록했다. 어차피 No Hack 을 출력하는 것도 결국엔 쿼리를 실행한 결과 나타나는 것이니 필터에 있는 문자를 ..
-
|Lord of SQL_injection| #26 Red_dragonWargame Site/SQL injection 2019. 3. 2. 14:12
이제 어느덧 두 줄을 남기고 있다. 가볼까아 26단계 문제 Red_dragon 이다. 우선 id 의 문자 길이가 7 이하여야 한다는 가정을 미루어볼때 뭔가 특별한 구문을 넣는 것 같다. 그리고 no 에는 숫자만 넣을 수 있는 것으로 보아 hex 값을 이용하는 것 같다. 우선은 조건을 무조건 참으로 만들어볼까아?? 문장을 참으로 만들면 admin 에 접근할 수 있는 것을 볼 수 있다. 그리고 no 에는 숫자 혹은 문자열만 들어갈 수 있다. 그.렇.다.면 id = ''||[field][부등식]# no=[줄바꿈][비교대상] 와 같은 접근을 생각해볼 수 있다. 필드와 비교대상을 연결하는 방식이다. 우선 호기심에 no 이라는 필드에 대해 탐색을 시작해보았다. (사실 pw 만 탐색하면 된다 ㅎㅎ) 이를 통해 no ..
-
|Lord of SQL_injection| #25 Green_dragonWargame Site/SQL injection 2019. 3. 1. 20:12
이 초록초록한 용친구를 클리어하면 8문제가 남는다 ~!! 오늘도 화이링~ 25단계 문제 Green_dragon 이다. 보자마자, 떠오른건 제약조건이 별로 없다는 것이었다. 그 뒤 이문제를 마주쳤을 땐 '이게 왜 25 단계일까?' 라는 의문이 들었다. 1단계 문제 Gremlin 와 17단계 문제 Succubus 에서도 사용했던 방법으로 해결하면 되기 때문이다. "id 가 admin 인 계정을 찾아라" 라는 질의를 했음에도 불구하고 아래 query2 부분이 출력이 안되었다는 점을 미루어 보아 이 DB 에 어쩌면 admin 이라는 계정이 없을 수도 있겠다는 생각이 들었다. 그 뒤, 바로 union select 를 붙혀서 실험해보았다. 질의의 결과로 1 과 2 가 들어갔다는 것을 보여준다.admin 이라는 계정..
-
|Lord of SQL_injection| #24 Evil_wizardWargame Site/SQL injection 2019. 2. 27. 15:50
9 개의 문제만을 남겨두고 있는 상황이다 얼른 달려야겠다. 화이팅 24단계 문제 Evil_wizard 이다. 중간에 노란색으로 주석처리가 된 부분이 눈에 뛴다.hell_fire 랑 같을거 같지?이 문구를 보고 '이번엔 필드에 따라 정렬을 해도 차이가 없겠구나' 라는 생각을 했다. 역시나 어떤 필드를 사용하든 간에 admin 이 위로 올라와 있는 것을 볼 수 있었다. order 를 적절히 조절해서 다른 결과를 보여줄 수 있는 구문을 찾는다면 끝날 것 같다. 다음과 같은 경우를 발견했고, 바로 코딩에 돌입했다. order by [정수] 의 경우는 "정수 번째 필드에 따라 정렬해라" 라는 의미로 order by 1 은 order by id 와 같은 구문이다. 일단 코딩을 해보았다. 짜잔!! 이 방법으로 문제를..
-
Pwnable.kr #2 collisionWargame Site/Pwnable.kr 2019. 2. 24. 22:19
분야는 다르지만, pawnable.kr 이 los 보다 어려운 것 같다. 이번에도 ssh 를 이용한 접근이다. 우선 현재 접속한 계정정보를 알아보도록하자. 'ls -l' 의 결과 다음과 같은 결과가 나왔고, 1 단계 문제와 마찬가지로 col 파일의 실행, 읽기 권한과 col.c 의 읽기 권한이 있는 것을 알 수 있다. col.c 의 코드는 다음과 같았다. 우선 인자를 넘겨주어야 한다는 점, 그리고 인자의 길이가 20 이여야 한다는 점 그리고 check_password ( 인자 ) 의 결과가 hashcode 와 같아야 한다는 제약조건이 있었다. hashcode 의 값은 0x21DD09EC 이고, 분석을 해보니 20 개의 char 를 int 를 가르치는 포인터로 변환했다. 그럼 기존의 char 들의 hex ..
-
Pwnable.kr #1 fdWargame Site/Pwnable.kr 2019. 2. 24. 13:31
이번엔 SQL Injection 이 아닌 System 쪽이다 !! 너무나도 유명유명한 Pwnable.kr 을 풀어보려한다. ssh 로 접근하여 푸는 문제들이 대부분인 것 같았다. 일단 접근한 계정 정보를 파악해보자.user, group 권한이 모두 fd 로 되어있었다.그리고나서, 파일들의 정보를 보기위해 'ls -al' 를 입력하였다. ls 로 파일들을 보니 fd 의 권한으로는 fd 의 실행권한, other 를 통한 fd.c 의 읽기 권한이 있는 것을 확인할 수 있었다. fd 의 소스코드로 추정되는 fd.c 를 우선 읽어보았다. 우선 처음보는 read 라는 함수를 이해하는 것이 필요했다. man read 를 통해 기본적인 파라미터를 파악한 뒤, 이중 fd(file descriptor) 에 대한 이해가 필..