websec.fr level10 write up
2018. 7. 3. 18:24
에이프릴 이나은 진짜 너무 예쁘다ㅠㅠㅠㅠㅠ
이 문제는 PHP의 Loose compare 를 통한 magic hash vulnerability 를 이용해서 풀었다. 밑의 부분에서 취약점이 발생한다.
$hash = substr (md5 ($flag . $file . $flag), 0, 8);
if ($request == $hash) {
show_source ($file);
}
$request 와 $hash 의 값을 ' == ' Loose compare를 통해서 비교하는데 만약 md5() 함수를 통해서 0e~~~ 가 나오면 $requests 가 0 일 때 true 로 되고 show_source 를 통해 flag.php를 볼 수 있게 된다. 그래서 처음에는 flag.php 앞에 './' 를 계속 붙여가면서 md5($flag . $file . $flag) 와 0을 비교했었는데, 아파치에서 허용하는 post의 최댓값을 벗어나서 안되었다. 그래서 '.' + '/' * i + 'flag' 로 해서 exploit 하였다.
시간이 좀 많이 걸리는 Brute-force attack 이라서 조금 안깔끔하긴 했지만, 재밌는 문제였다.
[*] exploit code : https://github.com/ch4n3-yoon/write-ups/tree/master/websec.fr/level10
'write-ups > websec.fr' 카테고리의 다른 글
websec.fr level22 write up (0) | 2018.07.04 |
---|---|
websec.fr level24 write up (0) | 2018.07.04 |
websec.fr level25 write up (0) | 2018.07.03 |
websec.fr level28 write up (1) | 2018.06.28 |
websec.fr level14 solving (0) | 2018.03.24 |