티스토리 뷰
md5_compare 는 VALUE1 과 VALUE2 를 비교해서 같으면 된다.
코드를 보면 다음과 같다.
<?php
if (isset($_GET['view-source'])) {
show_source(__FILE__);
exit();
}
if (isset($_GET['v1']) && isset($_GET['v2'])) {
sleep(3); // anti brute force
$chk = true;
$v1 = $_GET['v1'];
$v2 = $_GET['v2'];
if (!ctype_alpha($v1)) {$chk = false;}
if (!is_numeric($v2) ) {$chk = false;}
if (md5($v1) != md5($v2)) {$chk = false;}
if ($chk){
include("../lib.php");
echo "Congratulations! FLAG is : ".auth_code("md5_compare");
} else {
echo "Wrong...";
}
}
if (isset($_GET['view-source'])) {
show_source(__FILE__);
exit();
}
if (isset($_GET['v1']) && isset($_GET['v2'])) {
sleep(3); // anti brute force
$chk = true;
$v1 = $_GET['v1'];
$v2 = $_GET['v2'];
if (!ctype_alpha($v1)) {$chk = false;}
if (!is_numeric($v2) ) {$chk = false;}
if (md5($v1) != md5($v2)) {$chk = false;}
if ($chk){
include("../lib.php");
echo "Congratulations! FLAG is : ".auth_code("md5_compare");
} else {
echo "Wrong...";
}
}
?>
v1는 알파벳이어야 하고, v2는 숫자여야 한다.
그리고 그 둘을 md5화 했을 때, 다르면 false, 같으면 chk를 해서 flag를 출력한다.
PHP는 int형과 char형을 구분하여 선언하지 않는다고 한다.
md5 해싱을 할 때 해쉬값이 0e**** 인 경우 두 값을 비교하면 무조건 참이 된다.
stack overflow의 이 답변을 참고하여
VALUE1에는 QNKCDZO를, VALUE2에는 240610708을 넣어봤더니 문제가 풀렸다.
'Hacking > WarGame' 카테고리의 다른 글
[Wargame.kr]DB is really GOOD (0) | 2017.08.30 |
---|---|
[Wargame.kr] login filtering (0) | 2017.07.30 |
[Wargame.kr] WTF_CODE (0) | 2017.07.30 |
[Wargame.kr] flee button (0) | 2017.07.30 |
[Wargame.kr] QR CODE PUZZLE (0) | 2017.07.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- my-pass
- 워게임
- 우분투
- pwnable
- 자바
- 명령어
- wargame.kr
- 설치
- WebHacking
- attackme
- ubuntu
- java
- c언어
- lob
- BOF
- 웹해킹
- 1번
- Los
- pwnable.kr
- Python
- webhacking.kr
- Lord of SQL Injection
- MySQL
- cobolt
- ftz
- wargame
- C
- lord of sqlinjection
- 파이썬
- 0xdeadbeef
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함