2024. 11. 21. 13:13ㆍInformation Security 정보보안/DreamHack
배울내용 :
dreamhack,
web hacking,
개발자도구,
dreamhack 풀이,
dreamhack Type c-j 문제,
dreamhack web 풀이 ,
burfsuite,
Type c-j,
sha-1
문제
문제는 id 와 Pw 를 입력해서 플레그를 획득하는 방법인가? 일단 제목을 봤을때 힌트라는건 Type C-j 밖에 없다 그럼 이걸 검색 해보면 어떨까?
검색했더니 문제의 write up 말고는 딱히 없는걸로 봐서는 문제파일을 다운받아봐야지 힌트를 알것같다
<?php
function getRandStr($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[mt_rand(0, $charactersLength - 1)];
}
return $randomString;
}
require_once('flag.php');
error_reporting(0);
$id = getRandStr();
$pw = sha1("1");
// POST request
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$input_id = $_POST["input1"] ? $_POST["input1"] : "";
$input_pw = $_POST["input2"] ? $_POST["input2"] : "";
sleep(1);
if((int)$input_id == $id && strlen($input_id) === 10){
echo '<h4>ID pass.</h4><br>';
if((int)$input_pw == $pw && strlen($input_pw) === 8){
echo "<pre>FLAG\n";
echo $flag;
echo "</pre>";
}
} else{
echo '<h4>Try again.</h4><br>';
}
}else {
echo '<h3>Fail...</h3>';
}
?>
이중 키 포인트만 뽑아내자면
$id = getRandStr();
$pw = sha1("1");
id 에는 랜덤한 문자열을 얻고있으면 이걸 조건문에 비교하자면 문자열을 받아서 (int) 로형변환시키는데 이때 문자열은 0 으로 받아들이기에 id 는 0 으로 10개를 채워주면 된다
if((int)$input_id == $id && strlen($input_id) === 10)
그렇게 0 을 10개를 넣어서 id 에 넣어주면 아래처럼 ID 가 통과한걸 볼수있고 ID는 알아낸것이다.
$pw = sha1("1");
pw 에서는 는 sha1을 1로 해싱한 값이 저장되어있다.
그러면 sha1("1") 을 해싱한값을 얼마일까? GPT 를써서 알아도 되고 사이트에서 검색해서 변환하는 사이트를 사용해도 된다
$pw는 sha1("1")을 통해 생성된 고정값 356a192b7913b04c54574d18c28d46e6395428ab
위와같이 356...8ab 로 되어있고 여기서 조건문이 아래와 같이 8 글자 이여야하기 때문에 pw 에서 앞 8 글자만 옮겨주면 된다
if((int)$input_pw == $pw && strlen($input_pw) === 8){
echo "<pre>FLAG\n";
echo $flag;
echo "</pre>";
}
356a192b 7913b04c54574d18c28d46e6395428ab
앞에 8글자인 356a192b 가 비밀번호인걸 알수있다.
그러면 아까 알아낸 ID 와 PW를 넣어주면 성공플레그를 뛰울수있을것이다
'Information Security 정보보안 > DreamHack' 카테고리의 다른 글
[DreamHack] [web] [LEVEL 1] random-test 풀이 (0) | 2024.11.23 |
---|---|
[DreamHack] [web] [LEVEL 1] Broken Buffalo Wings 풀이 (0) | 2024.11.22 |
[DreamHack] [web] [LEVEL 1] baby-union 풀이 (1) | 2024.11.20 |
[DreamHack] [web] [LEVEL 1] BypassIF 풀이 (0) | 2024.11.19 |
[DreamHack] [web] [LEVEL 1] what-is-my-ip 풀이 (0) | 2024.11.18 |