write-ups/websec.fr

websec.fr level10 write up

2018. 7. 3. 18:24



에이프릴 이나은 진짜 너무 예쁘다ㅠㅠㅠㅠㅠ


 이 문제는 PHP의 Loose compare 를 통한 magic hash vulnerability 를 이용해서 풀었다. 밑의 부분에서 취약점이 발생한다. 


$hash substr (md5 ($flag $file $flag), 08);

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