Wargame.kr

Web_500

md5 password



이번에도 md5에 관련 된 문제입니다.


단순하게 패스워드를 입력 받는 텍스트박스와 로그인 버튼이 있습니다.

무엇을 원하는 문제인지 모르니 get source 링크를 타고 들어가 소스를 확인 해 봅시다.




md5($ps, true)를 이용하여 풀이하는 문제네요.

md5($ps, true)는 md5 hash를 16진수로 리턴하는게 아닌, 바이너리로 리턴을 해줍니다.



위 블로그에 나온 대로 1' or '1같은 바이너리가 나오도록 만들어주는 md5 hash 값을 찾아내면 됩니다.

ex에 나온 숫자를 그대로 입력해줍시다.





References

- bbolmin(http://bbolmin.tistory.com/77)

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

[Wargame.kr] Web_550_type confusion  (0) 2016.05.19
[Wargame.kr] Web_550_strcmp  (0) 2016.05.18
[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_500_DB is really GOOD  (0) 2016.05.17

Wargame.kr

Web_500

md5_compare


이번 문제는 md5를 비교하는 문제인 것 같습니다.

그냥 단순하게 다른 값을 가지고 비교를 하라고 하네요.




문제에 접속했을 때의 화면입니다. value1과 value2를 비교하는 폼이 있네요.

view-source를 클릭하여 소스를 확인 해 보도록 하죠.


v1은 ctype_alpha함수로 알파벳만 들어와야 하며, v2는 is_numeric 함수를 사용하여 숫자만 들어와야 합니다.

하지만 세 번째 if문에서는 md5로 hash한 값이 같아야만 chk 변수가 true로 남아있을 수가 있네요.




이는 php magic hash 취약점을 이용하여 우회 할 수 있습니다.

이는 문자열이 아닌 0e로 시작되는 값을 서로 비교할때, 문자열이 아닌 float형으로 인식하게 되면서 0의 지수형을 나타내는 변수로 바뀌게 됩니다. 그래서 0=0 꼴로 인식하게 되어 true를 반환하게 됩니다.





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

[Wargame.kr] Web_550_strcmp  (0) 2016.05.18
[Wargame.kr] Web_500_md5 password  (0) 2016.05.18
[Wargame.kr] Web_500_fly me to the moon  (0) 2016.05.17
[Wargame.kr] Web_500_DB is really GOOD  (0) 2016.05.17
[Wargame.kr] Web_450_login filtering  (0) 2016.05.17

+ Recent posts