Wargame.kr

Web_600

SimpleBoard


600점짜리 문제입니다.

Union을 이용한 SQL Injection 문제라고 하네요.

스크립트가 필요할 것이라고 합니다. 문제를 확인 해 보도록 하죠.




들어가보면 게시판이 하나 있습니다. 해당 제목을 클릭하면 글의 내용이 보여지며 HIT수가 올라갑니다.

소스를 확인해보죠.



read 함수의 where 구문에 $idx를 살펴보면 Single Quotation이 없습니다. 따라서 이 부분을 공격 벡터로 이용하여 SQL Injection을 먹일 수 있을 것 같습니다.

사실 이 문제의 경우 union을 이용한 SQL Injection이라고 하였지만, 계속 넣어봐도 query error만 뱉어내고 작동을 안해서... Blind SQL Injection을 이용하여 풀이했습니다.



파이썬 스크립트를 작성하여 테이블 이름을 찾아보았습니다.



limit 41, 1 을 걸어주었을 때 SIMPLEBOARD 테이블이 나왔고 40, 1을 걸어주었을 때 README라는 테이블 또한 뱉어냈습니다.

아마 README 안에 FLAG가 들어있을 것 같습니다.

다음은 COLUMN을 찾아보겠습니다.



limit 480,1을 걸어주었습니다.



column 중 FLAG라는 이름을 가진 컬럼이 있습니다.



이제 select 구문을 이용하여 flag를 따낼 차례입니다.



짠!

'Wargame > Wargame.kr' 카테고리의 다른 글

[Wargame.kr] Misc_650_pyc decompile  (0) 2016.05.23
[Wargame.kr] Web_650_web chatting  (0) 2016.05.23
[Wargame.kr] Web_600_tmitter  (0) 2016.05.20
[Wargame.kr] Web_550_type confusion  (0) 2016.05.19
[Wargame.kr] Web_550_strcmp  (0) 2016.05.18

Wargame.kr

Web_500

DB is really GOOD



이번 문제는 게시판에 낚여 꽤 애먹었습니다... 삽질 끝에 플래그가......ㅠㅠ


DB에 관련된 문제같습니다. 시작하죠.




문제에 접속하면 다음과 같은 화면이 나오는데, admin을 입력해보니 admin에는 접근 할 수 없다고 나옵니다.

여기서 user 이름을 아무렇게나 작성해주면 게시판이 나오는데, 거기서 허우적대다가 몇시간을 날려먹었습니다... 문제 힌트대로 처음부터 Username을 파봤어야했는데..



입력 가능한 특수문자를 모두 넣어보던 중 / 를 입력했을 때 db connect 오류가 발생하는 것을 알 수 있었습니다.






위 두가지 오류로 알 수 있는 것은 /home/www/db_is_really_good/db/wkrm_username.db로 db가 생성된다는 것을 알 수 있습니다.

그렇다면 접근이 금지된 admin db를 확인 해 보면 뭔가 있을 것 같습니다.




바로 접근해서 db를 다운 받아줍시다.



DB오류에서 DB는 SQLite3라는 것을 알아냈고, SQLite browser를 이용하여 해당 db를 까보니 memo 테이블에 플래그에 관련된 메모가 하나 남아있었습니다.


해당 메모를 열어보면 flag를 뱉어내는 php 주소를 보여줍니다.

'Wargame > Wargame.kr' 카테고리의 다른 글

[Wargame.kr] Web_500_md5_compare  (2) 2016.05.18
[Wargame.kr] Web_500_fly me to the moon  (0) 2016.05.17
[Wargame.kr] Web_450_login filtering  (0) 2016.05.17
[Wargame.kr] Web_450_WTF_CODE  (0) 2016.05.17
[Wargame.kr] Web_450_flee button  (0) 2016.05.16

Wargame.kr

Web_200

already got



Wargame.kr 첫 번째 문제입니다.


HTTP Response header를 볼 수 있는지에 대한 문제네요. 확인 해 봅시다.



우린 이미 키를 받았답니다.



받았네요.

'Wargame > Wargame.kr' 카테고리의 다른 글

[Wargame.kr] Web_500_DB is really GOOD  (0) 2016.05.17
[Wargame.kr] Web_450_login filtering  (0) 2016.05.17
[Wargame.kr] Web_450_WTF_CODE  (0) 2016.05.17
[Wargame.kr] Web_450_flee button  (0) 2016.05.16
[Wargame.kr] Web_300_QR CODE PUZZLE  (0) 2016.05.16

[H3X0R CTF 2016]

Misc_1

mic_no_check



대회 초반에 공개 됐던 misc 1점짜리 문제입니다.



nc로 주어진 ip, port로 접속하면 echo : 라는 문구가 나옵니다. string 값을 입력 받는 것 같네요.



;sh를 입력해주면 shell이 떨어지게 됩니다.

id를 입력 해 보니 mic_no_check_solved 권한으로 로그인 되어 있는 것을 확인 할 수 있습니다.



아마 flag라는 이름으로 flag가 있을 것이니, 검색을 해 줍시다. 

find / -name flag 2>/dev/null 로 결과값만 빠르게 확인 할 수 있습니다.

Write Up을 쓰고 있는 현재, 서버 응답이 상당히 느리기 때문에 대회 당시에 찾았던 경로를 바로 사용하겠습니다.



해당 경로로 이동해 flag 값을 읽어주면 flag를 찾을 수 있습니다.


flag is RESPECT_CODEGATE





대회가 끝나서 하는 말이지만... vim은 터미널이 아니라 사용 할 수 없었지만 /tmp 경로에서


echo "#include<stdio.h>

int main(int argc, char *argv[]){

printf("Hello World!\n");

return 0;

}" > test.c


gcc -o test test.c


./test


위와 같은 형식으로 컴파일 및 파일 구동까지 모두 가능했었습니다. 물론 gdb와 파이썬도 돌아갔구요.

해당 id의 권한을 제한하지 않은 것이 큰 문제였던 것 같습니다.

+ Recent posts