Natas 11 :: Hide

Natas 11

Posted by Hide­
2015.03.05 16:08 Security/Web

입력한 값에 따라 배경의 색이 바뀌는 구조다.

소스를 확인해보자.





간단하게 분석해보자면


0. data[showpassword] == yes 면 flag 출력

1. savaData($data) 를 통해 $defaultdata 를 json_encode -> xor_encrypt -> base64_encode 후 쿠키설정

2. loadData($defaultdata) 를 통해 쿠키에 data가 있는지 확인한 후 data를 base64_decode -> xor_encrypt ->

   json_decode 후 $tempdata에 저장

3. 정규식 확인 후 $mydata['showpassword'] 에 $tempdata['showpassword'] 를

   $mydata['bgcolor'] 에 $tempdata['bgcolor'] 를 저장하고 $mydata 리턴


대략 이런구조이다. 처음에는 xor_encrypt 부분에 key 가 <censored> 로 설정되어있길래 왜 키값도 같이 주나했는데

알고보니 censored가 검열되어 삭제됐다는 뜻이었다. 이것때문에 삽질좀했다..

A xor B = C 일 때 B xor C = A, A xor C = B 이므로

평문 xor 암호문을 통해 키를 찾을 수 있다.

그리고 처음에 data[showpassword] == yes 면 flag를 출력한다고 했으므로 해당값을 yes로 한 평문과

키값을 xor 하여 얻은 값으로 쿠키설정을 하면 문제가 풀린다.






다른 사람들이 많이 읽은 글

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

PHP Object Injection  (0) 2016.02.19
New Error Based SQL Injection in MySQL >= 5.7.5  (1) 2015.04.05
Natas 11  (0) 2015.03.05
Limit 구문에서의 SQL Injection  (2) 2015.02.27
문자열함수를 이용한 SQL Injection  (2) 2015.01.29
List of Apache dirs  (0) 2015.01.17
Tags
이 댓글을 비밀 댓글로

티스토리 툴바