no image
해커스쿨 FTZ level3
level3 힌트를 확인해보면 autofig 프로그램의 소스코드와 하단의 more hints가 존재한다. 동시에 여러 명령어를 사용하려면 ;(세미콜론)을 사용한다. 또한 문자열 형태로 명령어를 전달하려면 ""(쌍따옴표)를 사용한다. level4의 권한을 가진 파일을 찾아보면 힌트에서 확인했던 autodig를 확인할 수 있다. 이제 autodig의 인자열을 정해야한다. "dig@ ~ version.bind chaos txt" 명령어는 버전을 확인할 수 있는 명령어이다. 그 인자로 임의의 ip 주소를 주고, ;을 사용해서 sh을 실행시켜준다. 또한 문자열 형태로 명령어를 전달해야 하므로 ""에 묶어서 인자로 넣으면 password가 출력된다. suck my brain
2020.08.06
no image
해커스쿨 FTZ level2
level2 힌트를 확인해보니 텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다고 한다. 무슨 의민지 모르겠어서 찾아보니 vi나 vim 등으로 텍스트 파일을 편집하다가 :sh을 입력하면 다시 쉘로 이동할 수 있다고 한다. 또한 확인해보니 쉘 이외의 명령어들도 적용이 가능했다. 이렇게 명령어를 입력해도 명령어가 실행됐다. 방법은 알았으니 level3 권한을 가진 파일이 있는지 확인해보았다. find 명령을 사용해 찾아보니 에디터를 찾을 수 있었다. 에디터를 실행시켜 아까와 동일하게 명령어를 입력해보니 패스워드가 출력됐다. can you fly?
2020.08.01
no image
csictf 2020
cascade http://chall.csivit.com:30203/ 문제에 들어가보면 "/static/stype.css"가 있다. 해당 위치로 이동해보면 css 속성들과 그 사이에 주석으로 flag가 존재한다. csictf{w3lc0me_t0_csictf} oreo http://chall.csivit.com:30243/ 문제에 접속한 뒤 쿠키를 확인해보면 flavour이라는 쿠키가 추가된다. 값을 base64로 디코딩해보면 strawberry라고 뜬다. 하지만 chocolate 오레오를 먹고 싶어하니 쿠키 값을 초콜릿으로 바꿔야 한다. 쿠키 값을 초콜릿으로 변경하면 flag가 출력된다. csictf{1ick_twi5t_dunk} warm up http://chall.csivit.com:30272/ 문제..
2020.07.23
no image
해커스쿨 FTZ level1
level1 level1으로 로그인을 하여 파일 리스트를 확인해보면 hint 파일이 존재한다. hint 파일을 열어보면 level2 권한에 setuid가 걸린 파일을 찾으라고 한다. 파일을 찾으려면 trainer10에서 배운 내용을 활용하면 된다. find 명령을 사용하여 해당 파일을 찾았다. 파일을 실행해보면 레벨2의 권한으로 원하는 명령어를 실행시켜 준다고 한다. my-pass와 chmod는 제외된다는데, my-pass 명령어가 무엇인지 몰라서 살펴보았다. 찾아보니 해커스쿨 FTZ에만 있는 명령어로, 패스워드를 출력한다고 한다. level1에 로그인된 상태로 my-pass를 입력해보니 패스워드가 출력됐다. 이 방식 그대로 level2에 로그인된 상태로 my-pass를 입력하면 패스워드가 출력될 것 같..
2020.07.23
no image
해커스쿨 trainer
trainer2의 비밀번호는 linuxer 입니다. trainer3의 비밀번호는 computer 입니다. trainer4의 비밀번호는 mungguta 입니다. trainer5의 비밀번호는 goodluck 입니다. trainer6의 비밀번호는 coffee 입니다. trainer7의 비밀번호는 to the top 입니다. trainer8의 비밀번호는 player 입니다. trainer9의 비밀번호는 programming 입니다. trainer10의 비밀번호는 best! 입니다. trainer 1 [접속 ID@서버 현재위치] ls(list) 명령어 옵션 -a(all): 숨겨진 파일이나 디렉토리를 보여줌 (숨김 파일은 파일 이름 앞에 .이 들어감) -l(long): 자세한 내용을 출력함 (권한, 링크 수, 소유..
2020.07.18
Google CTF 2019
보호되어 있는 글입니다.
2020.06.29
no image
xss game level 3
location.hash를 사용하면 url “https://xss-game.appspot.com/level3/frame#1”에서 #1을 가져오게 된다. 따라서 location.hash.substr(1)은 1을 가져오는 함수이다. 또한 그렇게 가져온 값이 num에 들어간다. 그 값으로 “”; 문장이 완성되게 된다. 문제를 해결하기 위해서는 존재하지 않는 이미지를 띄우고 onerror 처리를 해야한다. 따라서 num의 값으로 src의 ‘를 닫고, onerror 코드를 추가하면 된다. 따라서 #2.jpg’ onerror=’alert()’/>// 라 입력을 하면 num에 2.jpg’ onerror=’alert()’/>//가 들어가게 된다. html 변수에 //./jpg’/>;가 추가된다. 이렇게 입력할 경우 i..
2020.06.29
no image
xss game level 2
힌트를 보면 tag는 작동하지 않으니 JavaScript attribute ‘onerror’를 사용하라고 알려줬다. onerror는 이미지 태그와 함께 쓰이고, 이미지를 불러오는데 에러가 발생하면 실행되는 명령이다. ‘’라 글을 작성하면 “hello”라는 이미지를 찾고 이미지를 열 수 없으면 alert() 명령을 실행하게 된다. hello라는 이미지는 존재하지 않으므로 문제가 해결된다.
2020.06.29

level3

 

 힌트를 확인해보면 autofig 프로그램의 소스코드와 하단의 more hints가 존재한다. 동시에 여러 명령어를 사용하려면 ;(세미콜론)을 사용한다. 또한 문자열 형태로 명령어를 전달하려면 ""(쌍따옴표)를 사용한다.

 

 level4의 권한을 가진 파일을 찾아보면 힌트에서 확인했던 autodig를 확인할 수 있다. 

 

 이제 autodig의 인자열을 정해야한다. "dig@ ~ version.bind chaos txt" 명령어는 버전을 확인할 수 있는 명령어이다. 그 인자로 임의의 ip 주소를 주고, ;을 사용해서 sh을 실행시켜준다. 또한 문자열 형태로 명령어를 전달해야 하므로 ""에 묶어서 인자로 넣으면 password가 출력된다. 

 

 

 suck my brain

728x90

'CTF > 시스템' 카테고리의 다른 글

해커스쿨 FTZ level5  (0) 2020.08.15
해커스쿨 FTZ level4  (0) 2020.08.08
해커스쿨 FTZ level2  (0) 2020.08.01
해커스쿨 FTZ level1  (0) 2020.07.23
해커스쿨 trainer  (0) 2020.07.18

level2

 

 힌트를 확인해보니 텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다고 한다. 무슨 의민지 모르겠어서 찾아보니 vi나 vim 등으로 텍스트 파일을 편집하다가 :sh을 입력하면 다시 쉘로 이동할 수 있다고 한다. 또한 확인해보니 쉘 이외의 명령어들도 적용이 가능했다. 

 

 이렇게 명령어를 입력해도 명령어가 실행됐다. 방법은 알았으니 level3 권한을 가진 파일이 있는지 확인해보았다. 

 

 find 명령을 사용해 찾아보니 에디터를 찾을 수 있었다. 

 

 에디터를 실행시켜 아까와 동일하게 명령어를 입력해보니 패스워드가 출력됐다.

 

 

 can you fly?

728x90

'CTF > 시스템' 카테고리의 다른 글

해커스쿨 FTZ level5  (0) 2020.08.15
해커스쿨 FTZ level4  (0) 2020.08.08
해커스쿨 FTZ level3  (0) 2020.08.06
해커스쿨 FTZ level1  (0) 2020.07.23
해커스쿨 trainer  (0) 2020.07.18

csictf 2020

assb
|2020. 7. 23. 12:06

cascade

http://chall.csivit.com:30203/

 

 문제에 들어가보면 "/static/stype.css"가 있다. 

 

 해당 위치로 이동해보면 css 속성들과 그 사이에 주석으로 flag가 존재한다. 

 

 csictf{w3lc0me_t0_csictf}

 

 

oreo

http://chall.csivit.com:30243/

 

 문제에 접속한 뒤 쿠키를 확인해보면 flavour이라는 쿠키가 추가된다.

 

 값을 base64로 디코딩해보면 strawberry라고 뜬다. 하지만 chocolate 오레오를 먹고 싶어하니 쿠키 값을 초콜릿으로 바꿔야 한다. 

 

 쿠키 값을 초콜릿으로 변경하면 flag가 출력된다. 

 

 csictf{1ick_twi5t_dunk}

 

 

warm up

http://chall.csivit.com:30272/

 

 문제에 접속하면 소스 코드가 출력된다. 이때 sha1(10932435112)에 대해서 구글링해보면 이 값은 매직 해시인 것을 알 수 있다.

 PHP에서는 1e2를 1*10^2로 인식한다. 따라서 0e~로 시작하게 된다면 뒤에 무슨 값이 오든 결과값은 0이 될 것이다. 매직 해시란 '0e'로 시작하는 문자열 뒤의 값들이 전부 숫자인 경우를 의미한다. 이는 PHP 상에서 flaot 형태로 인식되고, 값을 계산해보면 모두 0이 된다. 

 

github.com/spaze/hashes/blob/master/sha1.md

 

 위의 주소를 참고하여 문제를 해결했다. 매직해시들이 정리되어 있다. 

 

 매직해시 중 하나를 get 방식으로 전달하면 flag가 출력된다. 

 

 csictf{typ3_juggl1ng_1n_php}

 

 

secure portal

http://chall.csivit.com:30281

 

 이 문제는 패스워드를 알아내서 입력해야 한다. 소스코드를 확인해보면 난독화된 자바스크립트 코드가 존재한다. 

 

var _0x575c=['\x32\x2d\x34','\x73\x75\x62\x73\x74\x72\x69\x6e\x67','\x34\x2d\x37','\x67\x65\x74\x49\x74\x65\x6d','\x64\x65\x6c\x65\x74\x65\x49\x74\x65\x6d','\x31\x32\x2d\x31\x34','\x30\x2d\x32','\x73\x65\x74\x49\x74\x65\x6d','\x39\x2d\x31\x32','\x5e\x37\x4d','\x75\x70\x64\x61\x74\x65\x49\x74\x65\x6d','\x62\x62\x3d','\x37\x2d\x39','\x31\x34\x2d\x31\x36','\x6c\x6f\x63\x61\x6c\x53\x74\x6f\x72\x61\x67\x65',];(function(_0x4f0aae,_0x575cf8){var _0x51eea2=function(_0x180eeb){while(--_0x180eeb){_0x4f0aae['push'](_0x4f0aae['shift']());}};_0x51eea2(++_0x575cf8);}(_0x575c,0x78));var _0x51ee=function(_0x4f0aae,_0x575cf8){_0x4f0aae=_0x4f0aae-0x0;var _0x51eea2=_0x575c[_0x4f0aae];return _0x51eea2;};function CheckPassword(_0x47df21){var _0x4bbdc3=[_0x51ee('0xe'),_0x51ee('0x3'),_0x51ee('0x7'),_0x51ee('0x4'),_0x51ee('0xa')];window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]]('9-12','BE*');window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0x2'),_0x51ee('0xb'));window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0x6'),'5W');window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]]('16',_0x51ee('0x9'));window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0x5'),'pg');window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]]('7-9','+n');window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0xd'),'4t');window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0x0'),'$F');if(window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x8'))===_0x47df21[_0x51ee('0x1')](0x9,0xc)){if(window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x2'))===_0x47df21['substring'](0x4,0x7)){if(window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x6'))===_0x47df21[_0x51ee('0x1')](0x0,0x2)){if(window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]]('16')===_0x47df21[_0x51ee('0x1')](0x10)){if(window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x5'))===_0x47df21[_0x51ee('0x1')](0xc,0xe)){if(window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0xc'))===_0x47df21[_0x51ee('0x1')](0x7,0x9)){if(window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0xd'))===_0x47df21[_0x51ee('0x1')](0xe,0x10)){if(window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x0'))===_0x47df21[_0x51ee('0x1')](0x2,0x4))return!![];}}}}}}}return![];}

 

이를 난독화 해제 사이트를 통하여 해제해보았다. 

 

var _0x575c = ['\x32\x2d\x34', '\x73\x75\x62\x73\x74\x72\x69\x6e\x67', '\x34\x2d\x37', '\x67\x65\x74\x49\x74\x65\x6d', '\x64\x65\x6c\x65\x74\x65\x49\x74\x65\x6d', '\x31\x32\x2d\x31\x34', '\x30\x2d\x32', '\x73\x65\x74\x49\x74\x65\x6d', '\x39\x2d\x31\x32', '\x5e\x37\x4d', '\x75\x70\x64\x61\x74\x65\x49\x74\x65\x6d', '\x62\x62\x3d', '\x37\x2d\x39', '\x31\x34\x2d\x31\x36', '\x6c\x6f\x63\x61\x6c\x53\x74\x6f\x72\x61\x67\x65', ];
(function (_0x4f0aae, _0x575cf8) {
	var _0x51eea2 = function (_0x180eeb) {
		while (--_0x180eeb) {
			_0x4f0aae['push'](_0x4f0aae['shift']());
		}
	};
	_0x51eea2(++_0x575cf8);
} (_0x575c, 0x78));
var _0x51ee = function (_0x4f0aae, _0x575cf8) {
	_0x4f0aae = _0x4f0aae - 0x0;
	var _0x51eea2 = _0x575c[_0x4f0aae];
	return _0x51eea2;
};
function CheckPassword(_0x47df21) {
	var _0x4bbdc3 = [_0x51ee('0xe'), _0x51ee('0x3'), _0x51ee('0x7'), _0x51ee('0x4'), _0x51ee('0xa')];
	window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]]('9-12', 'BE*');
	window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0x2'), _0x51ee('0xb'));
	window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0x6'), '5W');
	window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]]('16', _0x51ee('0x9'));
	window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0x5'), 'pg');
	window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]]('7-9', '+n');
	window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0xd'), '4t');
	window[_0x4bbdc3[0x0]][_0x4bbdc3[0x2]](_0x51ee('0x0'), '$F');
	if (window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x8')) === _0x47df21[_0x51ee('0x1')](0x9, 0xc)) {
		if (window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x2')) === _0x47df21['substring'](0x4, 0x7)) {
			if (window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x6')) === _0x47df21[_0x51ee('0x1')](0x0, 0x2)) {
				if (window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]]('16') === _0x47df21[_0x51ee('0x1')](0x10)) {
					if (window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x5')) === _0x47df21[_0x51ee('0x1')](0xc, 0xe)) {
						if (window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0xc')) === _0x47df21[_0x51ee('0x1')](0x7, 0x9)) {
							if (window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0xd')) === _0x47df21[_0x51ee('0x1')](0xe, 0x10)) {
								if (window[_0x4bbdc3[0x0]][_0x4bbdc3[0x1]](_0x51ee('0x0')) === _0x47df21[_0x51ee('0x1')](0x2, 0x4)) return !! [];
							}
						}
					}
				}
			}
		}
	}
	return ! [];
}

 

 스크립트 코드를 확인해보면 if 문을 반복하며 패스워드를 체크하고 있다. input 값으로 "1234567890abcdef"를 준 후, 비교하는 두 값을 출력하며 패스워드의 순서를 확인한 후 패스워드를 재구성 하였다.

 

12:"5W" 
34:"$F"
567:"bb="
89:"+n"
0ab:"BE*"
cd:"pg"
ef:"4t"
:"^7M"

 5W$Fbb=+nBE*pg4t^7M

 

 csictf{l3t_m3_c0nfus3_y0u}

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

Google CTF 2020  (0) 2020.09.08
Google CTF 2019  (0) 2020.06.29
xss game level 3  (0) 2020.06.29
xss game level 2  (0) 2020.06.29
xss game level 1  (0) 2020.06.29

level1

 

 level1으로 로그인을 하여 파일 리스트를 확인해보면 hint 파일이 존재한다. 

 

 hint 파일을 열어보면 level2 권한에 setuid가 걸린 파일을 찾으라고 한다. 파일을 찾으려면 trainer10에서 배운 내용을 활용하면 된다. 

 

 find 명령을 사용하여 해당 파일을 찾았다. 

 

 파일을 실행해보면 레벨2의 권한으로 원하는 명령어를 실행시켜 준다고 한다. my-pass와 chmod는 제외된다는데, my-pass 명령어가 무엇인지 몰라서 살펴보았다. 찾아보니 해커스쿨 FTZ에만 있는 명령어로, 패스워드를 출력한다고 한다. 

 

 level1에 로그인된 상태로 my-pass를 입력해보니 패스워드가 출력됐다. 이 방식 그대로 level2에 로그인된 상태로 my-pass를 입력하면 패스워드가 출력될 것 같다. '

 

 level2 권한으로 쉘을 열어 my-pass 명령어를 사용해보니 패스워드가 출력됐다.

 

 

 hacker or cracker

728x90

'CTF > 시스템' 카테고리의 다른 글

해커스쿨 FTZ level5  (0) 2020.08.15
해커스쿨 FTZ level4  (0) 2020.08.08
해커스쿨 FTZ level3  (0) 2020.08.06
해커스쿨 FTZ level2  (0) 2020.08.01
해커스쿨 trainer  (0) 2020.07.18
trainer2의 비밀번호는 linuxer 입니다.
trainer3의 비밀번호는 computer 입니다.
trainer4의 비밀번호는 mungguta 입니다.
trainer5의 비밀번호는 goodluck 입니다.
trainer6의 비밀번호는 coffee 입니다.
trainer7의 비밀번호는 to the top 입니다.
trainer8의 비밀번호는 player 입니다.
trainer9의 비밀번호는 programming 입니다.
trainer10의 비밀번호는 best! 입니다.

 

trainer 1

 

 [접속 ID@서버 현재위치]

 

 ls(list) 명령어

 옵션

 -a(all): 숨겨진 파일이나 디렉토리를 보여줌 (숨김 파일은 파일 이름 앞에 .이 들어감)

 -l(long): 자세한 내용을 출력함 (권한, 링크 수, 소유자, 크기, 마지막 접근 일자, 등)

 

 파일 맨 앞의 문자가 d이면 디렉토리, -이면 파일

 

 

 

trainer 2

 

 pwd(print working directory): 현재 디렉토리의 절대 경로 출력

 

 cd(change directory): 디렉토리 이동

 .: 현재 폴더

 ..: 상위 폴더

 /: 최상위 디렉토리

 절대경로(최상위 디렉토리에서 시작), 상대경로(현재 디렉토리에서 시작)를 사용해서도 이동 가능

 

 mkdir: 폴더 생성

 rmdir: 폴더 삭제 (-r 옵션: 디렉토리와 하위 내용들을 재귀적으로 삭제, -f 옵션: 알림 메시지 표시하지 않음)

 

 cp file1 file2: file1을 복사하여 file2 생성

 cp file dir: 파일을 디렉토리로 복사

 cp -r dir1 dir2: 디렉토리 복사

 

 rm: 파일 삭제

 

 mv: 파일 이동 (파일 이름을 변경할 때도 쓰임)

 

 

 

trainer 3

 

 w: 서버 정보와 함께 사용자 정보를 자세히 알려줌

 (서버의 현재 시각, 서버 부팅 이후 시스템 작동시간, 서버 접속자 총 수, 접속자별 서버 평균부하율, 접속자별 계정/접속 TTY/접속 IP/로그인 시각/CPU 사용정보, 접속자별 현재 사용자 명령어 정보)

 

 finger: 사용자 정보 출력

 -l 옵션: 멀티라인 형식으로 사용자 홈 디렉토리, 집 전화번호, 로그인 쉘, 메일 상태 등과 함께 -s 옵션으로 보이는 정보 출력

 -s 옵션: 사용자의 로그인 이름, 실제 이름, 터미널 이름, 상태, idle 시간, 로그인 시간, 사무실 위치, 사무실 전화 출력

 

 tty: 자신의 터미널 확인

 

 ifconfig: 네트워크 인터페이스 설정 확인, 주로 IP 주소를 확인하는데 사용

 

 write: 로그인 중인 특정한 사용자에게 메시지를 전달

 

 wall: 모든 로그인된 사용자들에게 메시지를 전달

 

 

 

trainer 4

 

bin : 가장 필수적인 리눅스 실행 파일 (기본적인 실행 파일)

boot : 리눅스 부팅 관련 파일과 커널

dev : 하드웨어에 관한 정보

etc : 패스워드 파일, 쉐도우 파일, 리눅스 설정 파일 등 (리눅스의 설정 파일)

/etc/passwd : 사용자들에 대한 간단한 정보

/etc/shadow : 사용자들의 패스워드 (아무나 보지 못함)

/etc/services : 어떤 서비스를 하는중인지 보여줌

/etc/issue.net : 처음 접속될 때 나오는 화면

/etc/motd : 로그인 후에 나오는 메세지

~/public_html : 각 사용자들의 홈페이지 파일

home : 일반 사용자들의 디렉토리가 들어가는 곳 (일반 사용자들의 아이디와 작업공간)

lib : 라이브러리 파일

mnt : mount 명령을 사용하여 마운트 시킨 시디롬, 플로피 디스켓 등이 들어가는 디렉토리

proc : 프로세스들이 저장

root : 루트의 홈 디렉토리

sbin : 기본 명령을 제외한 시스템 관리용 실행파일

tmp : 임시로 파일을 저장하는 디렉토리 (누구나 이 디렉토리에 파일 생성 가능)

usr : 다양한 응용 프로그램들이 설치되어 있는 곳

var : 시스템 운영 중 생성 되는 각종 임시 파일과 외부 접속에 대한 로그 파일

 

 

 

trainer 5

 

 whoami: 자신의 기본 정보

 

 id : 자신의 자세한 기본 정보

 

 /etc/passwd: 서버의 모든 사용자들의 정보

 

 uname -a: 리눅스의 커널 버전

 

 cat /etc/*release : 설치된 OS의 버전

 

 rpm -qa : 설치된 패키지 정보


 cat /proc/cpuinfo : cpu 정보

 

 

 

trainer 6

 

 cat: 파일 내용 출력 (-n 옵션: 행 번호 표시)

 

패스워드 파일 정보

사용자명:패스워드(암호화된 문자열):사용자 계정 uid:사용자 계정 uid:사용자 계정 이름:사용자 홈 디렉토리:사용자 계정 로그인 쉘

 

 

 

trainer 7

 

 tar: 파일을 묶는 것(archive)

 gzip: 파일을 압축(compress)

 

 ※ 리눅스 압축 확장자
 tar : tar 프로그램을 사용하여 압축된 파일 (cvf: 합치기, xvf: 해제하기)
 gz : gzip 프로그램을 사용하여 압축된 파일 (-d: 파일 압축 해제)
 tar.gz : tar 프로그램으로 합친 후 gzip으로 압축한 파일
 tgz : tar.gz와 동일

 

 

 

trainer 8

 

 cat > file: 파일 생성

 

 cat >> file: 파일의 끝에 내용 추가

 

 

 gcc -o 프로그램이름 소스파일이름: c언어 컴파일

 

 절대경로 또는 상대경로(./프로그램이름)을 사용하여 파일 실행

 

 

 

trainer 9

 

 uid: user id, gid: group id, groups: 현재 속한 그룹

 

 파일 권한

 순서대로 user, group, others 권한 (소유자 권한, 그룹 사용자 권한, 기타 사용자 권한)

 rwx는 파일의 권한을 나타냄 (r: read, w: write, x: excute)

 

 

 

 

trainer 10

 

 Local 해킹 : 관리자 권한(root)를 얻고자 시도
 Remote 해킹 : 일반 아이디를 얻을때
 SetUID : 일시적으로 자신의 ID를 변경하는 것 (잠시동안 root 권한을 가질 수 있음) (s)

 ※ passwd 파일에는 SetUID가 걸려있음

 

 find / -perm -4000 : 서버 전체에서 SetUID가 걸린 파일 찾기

 -perm : 권한과 일치하는 파일을 찾는다
 -name : 이름과 일치하는 파일을 찾는다
 -user : 유저와 일치하는 파일을 찾는다
 -group : 그룹과 일치하는 파일을 찾는다

 

 

 

728x90

'CTF > 시스템' 카테고리의 다른 글

해커스쿨 FTZ level5  (0) 2020.08.15
해커스쿨 FTZ level4  (0) 2020.08.08
해커스쿨 FTZ level3  (0) 2020.08.06
해커스쿨 FTZ level2  (0) 2020.08.01
해커스쿨 FTZ level1  (0) 2020.07.23

Google CTF 2019

2020. 6. 29. 15:39

This is a protected article. Please enter the password.

xss game level 3

assb
|2020. 6. 29. 15:33

 location.hash를 사용하면 url “https://xss-game.appspot.com/level3/frame#1에서 #1을 가져오게 된다. 따라서 location.hash.substr(1) 1을 가져오는 함수이다.

 

 

 또한 그렇게 가져온 값이 num에 들어간다. 그 값으로 “<img src=’/static/level3/cloud” + num + “./jpg’/>”; 문장이 완성되게 된다. 문제를 해결하기 위해서는 존재하지 않는 이미지를 띄우고 onerror 처리를 해야한다. 따라서 num의 값으로 src를 닫고, onerror 코드를 추가하면 된다.

 

 

 따라서 #2.jpg’ onerror=’alert()’/>// 라 입력을 하면 num2.jpg’ onerror=’alert()’/>//가 들어가게 된다. html 변수에 <img src=’/static/level3/cloud2.jpg’ onerror=’alert()’/>//./jpg’/>;가 추가된다. 이렇게 입력할 경우 image2가 출력된다. onerror는 이미지가 존재하지 않을 경우 실행되므로 존재하지 않는 이미지(0또는 4부터)를 입력하면 문제가 풀린다.

 

 

 

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

csictf 2020  (0) 2020.07.23
Google CTF 2019  (0) 2020.06.29
xss game level 2  (0) 2020.06.29
xss game level 1  (0) 2020.06.29
webhacking.kr challenge 59  (0) 2020.06.29

xss game level 2

assb
|2020. 6. 29. 15:32

 힌트를 보면 <script> tag는 작동하지 않으니 JavaScript attribute ‘onerror’를 사용하라고 알려줬다. onerror는 이미지 태그와 함께 쓰이고, 이미지를 불러오는데 에러가 발생하면 실행되는 명령이다.

 

 

 ‘<img src=”hello” onerror=”alert()”>’라 글을 작성하면 “hello”라는 이미지를 찾고 이미지를 열 수 없으면 alert() 명령을 실행하게 된다. hello라는 이미지는 존재하지 않으므로 문제가 해결된다.

 

 

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

Google CTF 2019  (0) 2020.06.29
xss game level 3  (0) 2020.06.29
xss game level 1  (0) 2020.06.29
webhacking.kr challenge 59  (0) 2020.06.29
webhacking.kr challenge 58  (0) 2020.06.29