Wargame Site
-
-
-
SQL injection 바로 잡기 #5 Where 동작의 이해Wargame Site/SQL injection 2020. 3. 12. 23:09
이번에 배울 개념은 정말 중요한 개념이다. 직접 테이블을 구성해보고 실험을 해보는 것을 추천한다. 우선 하나의 질문이 있다. 이 질문에 대답을 할 수 있다면 해당 포스트를 보지 않아도 된다. Q. 위와 같은 Table 이 있을 때 다음과 같은 Query 의 동작의 결과를 설명할 수 있는가? 보통 사람들이 생각하기에 name 의 length 가 3 일 경우 4 가 들어가서 ( 4 , 'park' ) 이 출력되고, legnth 가 3 인게 아닐 경우 1 이 들어가서 ( 1 , 'kim' ) 이 출력될 것이다 라고 개념을 잘못 잡을 수 있다. 하지만, Empty set 가 출력되었다. 이 질문에 답을 하기 위해서는 우선 Where 의 동작을 잘 이해해야한다. 필자가 직접 집필한 저서에도 기록을 해놓았다. wh..
-
SQL injection 바로 잡기 #4 문자열Wargame Site/SQL injection 2020. 3. 12. 19:55
우선 수업을 진행하면서 문자열의 직접적인 언급이 필터링되어 있는 문제에 대해서 해결책을 크게 4가지 제시했다. 0x 표현 역슬래시 표현 ike 활용 concat 활용 crackus 5 번 문제에서 다음과 같이 admin 의 사용이 막혀있는 것을 알 수 있다. 0x표현 0x 표현은 문자열로 바뀌는 것을 알 수 있다. \ 역슬래시 활용 이스케이프 문자에 해당되는 문자를 제외하고 다른 문자들 앞에 역슬래시를 넣어줌으로써 우회가 가능하다. ( '\n' 는 Line Feed 이다. ) like 활용 LOS 11 번문제 Golem 에서 더 자세히 다루고 있다. concat 활용 Concat 이라는 함수를 통해서 admin 을 나누어서 하나의 문자열을 나타낼 수 있다. 하지만, 여기서 학생들이 자주하던 실수가 있다...
-
|Lord Of Bufferoverflow| #19 nightmare - xaviusWargame Site/BOF 2019. 7. 10. 08:22
오늘은 id;ll 로 한번에 확인했다 ^^ 이 코드를 천천히 분석해보면서 가장 궁금했던 점은 Lib 영역을 필터링하는데 " \x40 "을 사용하지 않았다는 점이다. 당연히 \x40 영역이 좀 더 포괄적인 개념이라고 생각하지만, 그 자세한 이유에 대해서 고민을 했다. 그러던 중, fgets 의 세 번째 인자 즉, stdin 를 통해 접근할 수 있지 않을까 하는 생각이 들었다. 표준입력 즉, 내가 입력한 값이 들어가는 곳이기 때문에 만약 stdin 영역이 \xbf, \x08 로 시작하지 않는다면 해결할 수 있을 것이다. 디버깅을 해보면 stdin 이 push 될 것이다. 세 번의 PUSH 중 첫 번째 push 된 값이 stdin 과 관계가 있을 것이다. 따라가다보면 ds:0x8049a3c 가 stdin 이라..
-
|webhacking.kr| #29Wargame Site/Webhacking.kr 2019. 7. 9. 20:54
blind sql injection 으로 푸는 것보다 간단한 방법이 존재한다는 것은 뭔가 보다 단순한 문제인 것 같다. 처음 업로드에는 아무것도 출력되지 않았다. 하다보니 이제까지 넣어줬던 파일들이 출력되는 것을 알 수 있었다. 뭔가 문제 특성상 password 가 이 3개의 field 중에 출력이 되는 구나 라는 생각을 했다. select password from c29_tb 이 구문이 뭔가 그 역할을 해줄 것 같았다. 우선적으로 입력하는 값은 file_name 하나 뿐이고, 3필드가 출력되는 것으로 보아 file_name 을 사용해서 insert 취약점을 이용하여 password 가 출력되는 Query 를 만들어야할 것 같았다. 추가적으로 "." 가 str_replace 되는 것을 보니 IP 의 사용..
-
|webhacking.kr| #28Wargame Site/Webhacking.kr 2019. 7. 9. 19:23
페이지를 처음 봤을 때 업로드 취약점 같은 느낌이 들었다. 업로드 취약점에 대한 지식이 0 이기 때문에 write up 을 볼 수 밖에 없었다. 그냥 아무파일이나 넣어봤다. .htaccess 라는 힌트가 나왔다 .htaccess 란 hypertext access 의 약자로, Apache Web Server 의 설정파일이다. 더 자세히 말하자면, 디렉토리별 설정을 가능케해준다. .htaccess file 은 '분산설정파일' 로 불리기도 한다. 각 디렉토리에 대한 허가, 리다이렉팅, 인증, 디렉토리 리스팅 등의 용도로 사용된다. 조사결과 C 언어에서의 goto 문과 같은 느낌이라고 한다. 해당 문제에 에러가 있는게 분명한 것 같다. 풀이를 봐도 안풀린다. 이런식의 접근 정말 싫어하지만, .htaccess 의..
-
|Lord Of Bufferoverflow| #18 succubus - nightmareWargame Site/BOF 2019. 7. 9. 17:30
Write Up 을 보지않고 해결하는 것을 좋아하는 성격 탓에 몇 일 동안 끙끙 거린 뒤, 드디어 풀이를 올린다... 우선 id 와 권한을 확인한다. 천천히 코드를 해석해보면 strcpy 의 주소가 필요하다는 것을 알 수 있다. 그리고 strcpy 바로 다음의 값이 'AAAA' 이다. 이 값은 strcpy 가 실행된 뒤 실행될 위치의 주소가 들어간다. strcpy 의 주소는 objdump 를 통해서 혹은 gdb -q ./nightmare 를 통해 간단히 확인할 수 있다. 다음과 같이 strcpy 를 맞춰준 뒤, 다음과 같이 인자를 넘겨주었다. `python -c 'print "A"*44 + [ strcpy 주소 ] + "BBBB" + "CCCC" + "DDDD" + "EEEE" + [ shell code..