본문 바로가기
Security

Natas 11

by Hide­ 2015. 3. 5.
반응형

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

소스를 확인해보자.





간단하게 분석해보자면


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' 카테고리의 다른 글

main() 호출과정  (0) 2015.10.05
New Error Based SQL Injection in MySQL >= 5.7.5  (1) 2015.04.05
Limit 구문에서의 SQL Injection  (2) 2015.02.27
리눅스 보호기법 확인  (2) 2015.02.26
Stripped 된 바이너리의 Symbol 정보찾는법  (0) 2015.02.21