화살표 함수: 화살표 기호(=>)를 이용하여 함수를 작성하는 방법. 기존 함수보다 단순하고 간결한 문법으로 함수를 만들 수 있다. 

 

let sum (a,b) => a + b; //화살표함수

let sum = function(a, b){	//원래 함수
	return a+b;
};		

 

'Web > Develop' 카테고리의 다른 글

[PHP] PDO로 데이터베이스(mysql) 연결  (0) 2020.06.14
[PHP] phpinfo  (0) 2020.06.12
[JavaScript] 함수 표현식과 함수 선언문  (0) 2020.01.27
[JavaScript] confirm()  (0) 2020.01.27
[JavaScript] prompt()  (0) 2020.01.26
// 함수 선언문
function sum(a, b){
	return a+b;
}
// 함수 표현식
let sum = function(a, b){
	return a+b;
};

함수 선언문은 스크립트 실행 준비 단계에서 생성되기 때문에 함수 선언문의 앞에서도 호출이 가능하나 함수 표현식은 코드의 순서대로 순차적으로 생성 되어 표현식이 선언된 후에만 접근할 수 있다.

'Web > Develop' 카테고리의 다른 글

[PHP] PDO로 데이터베이스(mysql) 연결  (0) 2020.06.14
[PHP] phpinfo  (0) 2020.06.12
[JavaScript] 화살표 함수  (0) 2020.02.02
[JavaScript] confirm()  (0) 2020.01.27
[JavaScript] prompt()  (0) 2020.01.26

confirm : 매개 변수로 받은 질문과 확인 및 취소 버튼이 있는 창을 띄우는 함수

확인을 누르면 참(true), 취소를 누르면 거짓(false)를 반환.

 

confirm('Are you female??')

 

'Web > Develop' 카테고리의 다른 글

[PHP] PDO로 데이터베이스(mysql) 연결  (0) 2020.06.14
[PHP] phpinfo  (0) 2020.06.12
[JavaScript] 화살표 함수  (0) 2020.02.02
[JavaScript] 함수 표현식과 함수 선언문  (0) 2020.01.27
[JavaScript] prompt()  (0) 2020.01.26

prompt : 텍스트 메시지, 입력필드, 확인, 취소 버튼이 있는 창을 띄우는 함수

prompt(title, [default]);

title: 사용자에게 보여줄 메시지

default : 입력 필드의 초기값(선택사항이나 IE(익스플로러)에서는 반드시 값을 넣어줘야 함)

 

prompt 함수가 실행되면 대화상자의 입력필드에 원하는 값을 입력후 확인을 누를 수 있음. 확인을 누를 경우 입력 값이 반환되고, 입력을 취소하면 null값을 반환함

 

prompt("name", "default");

 

'Web > Develop' 카테고리의 다른 글

[PHP] PDO로 데이터베이스(mysql) 연결  (0) 2020.06.14
[PHP] phpinfo  (0) 2020.06.12
[JavaScript] 화살표 함수  (0) 2020.02.02
[JavaScript] 함수 표현식과 함수 선언문  (0) 2020.01.27
[JavaScript] confirm()  (0) 2020.01.27

문제 설명을 보면 md5 함수가 나와 있다.

 

문제 페이지를 보면 password를 입력하는 입력란이 있고, 페이지 소스 코드를 볼 수 있다.

 

소스 코드를 보면 md5 함수에서 취약점이 발생한다.

md5  함수 옵션의 기본값은 false 인데, true 옵션을 사용하게 되면 해시 값을 바이너리 형식으로 반환하게 된다.

 

또한 sql에서 패스워드의 값이 '=' 의 형태로 들어가게 되면 참 으로 인식하고, php내에서는 md5 해시한 값이 바이너리 형식으로 인식하기 때문에 어떤 값을 md5 해시한 결과가 '=' 인 값을 찾아야 한다.

파이썬으로 코딩해서 찾아보면 1839431 이라는 값을 찾을 수 있다.

 

import hashlib

 

for i in range(0,1000000000):

    if b"'='" in hashlib.md5(str(i).encode()).digest():     # bytes형태로 바꿈

        print('Found: {}'.format(i))

 

찾은 값을 문제 페이지의 password 값을 입력하면 flag를 얻을 수 있다.

 

알게된 점 : php에서 md5함수의 옵션이 true로 설정되게 되면 취약점이 발생한다.

md5함수의 기본값 옵션은 false 이다. 

'Security & Hacking > Wargame' 카테고리의 다른 글

[Wargame.kr] strcmp  (0) 2019.09.02
[Wargame.kr] DB is really GOOD  (0) 2019.09.02
[Wargame.kr] fly me to the moon  (0) 2019.08.27
[Wargame.kr] WTF_CODE  (0) 2019.08.27
[Wargame.kr] login filtering  (0) 2019.08.25

문제 설명을 보면 자바스크립트 게임이고, 시스템을 우회하여 클리어 할 수 있냐고 물어보는 것 같다.

 

문제 페이지를 보면 어떤 게임을 할 수 있는 것 같다.

게임을 플레이 해 보면 31337점을 얻어야 게임을 클리어 할 수 있을 것 같다.

 

소스코드를 보면 다음과 같이 난독화된 자바스크립트 코드를 확인할 수 있다.

https://beautifier.io/ 라는 사이트에서 자바스크립트 코드의 난독화를 해제할 수 있다.

코드를 잘 살펴보다 보면 다음과 같이 score 값을 조작할 수 있는 부분을 발견할 수 있게 된다.

저기에 BTunnelGame['getScore']() 를 지우고 목표 점수인 31337으로 수정한후

전체 코드를 웹 페이지의 콘솔창에 입력한 후 게임을 실행하면 게임오버시 플래그를 얻을 수 있다.

 

 

알게된 점 : 자바스크립트 코드 난독화를 해제하는 사이트

'Security & Hacking > Wargame' 카테고리의 다른 글

[Wargame.kr] DB is really GOOD  (0) 2019.09.02
[Wargame.kr] md5 password  (0) 2019.08.29
[Wargame.kr] WTF_CODE  (0) 2019.08.27
[Wargame.kr] login filtering  (0) 2019.08.25
[Wargame.kr] QR CODE PUZZLE  (0) 2019.08.25

첫번째 문제다.

위에 있는 문제 설명을 읽어보면 alert(경고창)을 띄우라고 한다.

평범한 js코드를 주입하면 문제 클리어가 가능하다

<script>alert(1);</script>

 

'Security & Hacking > Wargame' 카테고리의 다른 글

[XSS game] Level 3  (0) 2019.08.06
[XSS game] Level 2  (0) 2019.08.06
[webhacking.kr] Challenge 18  (0) 2019.06.21
[webhacking.kr] Challenge 17  (0) 2019.06.13
[webhacking.kr] Challenge 16  (0) 2019.06.08

+ Recent posts