해당 코드를 입력할 수 있다면 풀리는 문제입니다.



우선 그대로 입력해봅니다.

그대로 입력하면 <script>와 </script> 부분이 필터링 되는지 삭제가 됩니다.



앞쪽 <script>부분에 대문자를 섞어서 해보겠습니다.

php의 경우 대소문자 구분을해서 통과합니다.


그러나 모든 글자가 사라집니다.



그럼 앞뒤로 >, < 를 넣어봅니다.

<script>와 </script> 만 필터링되고 사라집니다.


"<" 자체를 필터링 하지는 않나봅니다.



그렇다면 <script>부분을 <> 로 감싸봤습니다.

그러니 안에 <script>와 </script> 부분만 사라졌습니다.



확실하게 하기위해 실험해봅니다.

<>안에 아무 글자나 입력하고 전송을 하면 필터링되어 나타나지 않습니다.


<script>를 필터링하는게 아니라 "<>"안에 문자열들이 있으면 필터링하는거 같습니다.



방금해본 것을 <>로 감싸보면 <>만 남고 사라집니다.

<>가 두겹으로 되어있으면 밖에있는 <>는 영향을 받지 않는거 같습니다.


이걸 이용해서 <script>부분을 감싸고 script라는 문자열을 입력하면 성공하게 됩니다.



'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Basic+ level3  (0) 2018.09.09
[HackThis] Basic+ level4  (0) 2018.09.03
[HackThis] Main level10  (0) 2018.08.31
[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31

Flash도 데이터를 보낼때 <form>태그의 Post방식으로 보내는거와 동일하게 데이터가 보내집니다.


현재 score는 109384이며 194175가 되어야 성공한다고 합니다.



"Brupsuite"라는 프록시 툴을 이용해서 중간해 데이터를 잡아보면 다음과 같이 score가 보내지는데


해당 값을 194175로 변경하고 보내면 해결이 되는거라 생각했습니다.. 


그러나 301 redirect가 나오면서 페이지를 옮겨다니다 실패하게 되었습니다..



그렇게 오래 지나고.. post방식으로 날라가는거 같으니 <form>태그를 만들어서 날려보면 될꺼같아 보내봤습니다,


아래와 같이 내용을 추가하고 보내보니 성공하게 됩니다.

1
2
3
4
<form method="post" action="/levels/basic+/3?submit">
    <input type="text" name="score" id="score">
    <input type="submit" value="submit">
</form>
cs



왜.. 프록시 툴로 안될까요?.. 알수가 없네요 ㅜ

'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Intermediate level4  (0) 2018.09.19
[HackThis] Basic+ level4  (0) 2018.09.03
[HackThis] Main level10  (0) 2018.08.31
[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31

너무 황당하고.. 그랬네요 좀..


level5를 빠르게 먼저 풀었어가지고 이것도 비슷한 방법으로 해봤습니다.


무슨 데이터가 숨어있나 찾아보기도 했고 암호화나 해쉬값으로 되어있나 찾아봤지만


답을 찾을 수 없었습니다.... 온통 이상한 글자들 뿐..



우선 사진은 다음과 같습니다. 여기서 데이터를 찾으면 된다고 합니다.



결론부터 이야기를 하자면 사진에는 Exif(교환 이미지 파일 형식)이라는 친구가 있습니다.


이것은 사진의 다양한 데이터를 넣을 수 있는데 사진을 찍었을 때 카메라 설정, 날짜. 저작권 등등 다양한 정보를 사진의 포함 시킬 수 있습니다.


Windows는 우클릭 속성에서 다음과 같이 간단하게 그 정보를 확인 할 수 있습니다..



위에 값을보고 만든 이가 "james"인걸 보고 이게 username인가 ? 했으며


설명의 "I like chocolate"을보고 이게 password인가해서 인증해봤는데 아니였습니다.


그래서 여기에서 얻을 수 있는게 없다 판단하고... HxD도 확인해보고... Notepad에 옮겨서 차근차근 읽어봤지만 실패..


더이상 정보를 얻을 수 없었습니다..


오랜시간 후에 james/chocolate 으로 인증해보니 되었습니다.


너무 황당했네요..ㅜ


'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Intermediate level4  (0) 2018.09.19
[HackThis] Basic+ level3  (0) 2018.09.09
[HackThis] Main level10  (0) 2018.08.31
[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31

일반적인 암호화는 쉽게 풀린다고 합니다.


일반적인 암호에는 MD5, SHA, Basa64 .. 같은게 있죠.



소스보기를 해봅니다.


1
2
3
4
5
6
7
8
9
10
<form method="POST">
    <fieldset>
        <label for="user">Username:</label>
        <input type="Text" name="user" id="user" autocomplete="off"><br>
        <label for="user">Password:</label>
        <input type="Password" name="pass" id="pass" autocomplete="off"><br>
        <input type="hidden" name="passwordfile" value="level10pass.txt">
        <input type="submit" value="Submit" class="button">
    </fieldset>
</form>
cs


"passwordfile"이라면서 "level10pass.txt"가 있다고 합니다 해당 파일에 복호화해야할 문자열이 있겠죠?


근데 정확한 경로를 안알려줘서 좀 해맸습니다...


다른 문제에서 파일들이 보통 /level/extras에 있어서 혹시 몰라 해보니 있네요...



보아하니 ':' 로 구분되어 있고 앞에는 id, 뒤에는 pwd라는 것을 짐작할 수 있습니다.


우선 자리수는 64개이고 모두 숫자와 영문으로 되어있습니다.


64개의 암호문이면 sha256를 떠올릴 수 있습니다. 


sha256으로 해쉬 복호화를 해보면 값이나오고 인증하면 성공합니다.


'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Basic+ level3  (0) 2018.09.09
[HackThis] Basic+ level4  (0) 2018.09.03
[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31
[HackThis] Real level2  (0) 2018.08.31

영어 해석 때문에 제대로 안풀렸고 오래걸린 문제입니다. ㅠㅠ


①구글번역

개발자는 이제 비밀번호 알림을 받을 수 있는 기능을 추가했습니다. 대신 로그인 정보를 보내기 위해 악용 할 수 있습니까?


②파파고 번역

개발자는 이제 비밀번호 알림 기능을 추가했습니다. 대신 로그인 세부 정보를 보낼 수 있습니까?


③실제 의미하는 바(자해석)

개발자에게 비밀번호가 보내지도록 되어있는데, 너에게 로그인 정보를 보내도록 할수 있냐?


이런 느낌인거 같습니다.



"Request detailes"에 가보면 다음과 같은 소스코드를 보실 수 있습니다.



"hidden" 타입으로 value="admin@hackthis.co.uk"로 되어있는 것을 보아 저 이메일 주소로 로그인 정보가 보내지는 것으로 보여집니다.


여기에 본인의 email 주소로 바꿔놓고 전송하게 되면 성공하게 됩니다.


1
2
3
4
5
6
7
8
<form method="POST">
    <fieldset>
        <label for="email1">Email:</label>
        <input type="text" name="email1" id="email1" autocomplete="off"><br>
        <input type="hidden" name="email2" id="email2" value="admin@hackthis.co.uk" autocomplete="off">
        <input type="submit" value="Submit" class="button">
    </fieldset>
</form>
cs




번역기가 정확한 해석을 해줄 수 있는 것은 아니기 때문에 나름대로 더 해석해 봐야했고


영어의 중요성을.... ㅠ


해석 하나로 전혀 다른 방안으로 풀고 있었습니다.

'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Basic+ level4  (0) 2018.09.03
[HackThis] Main level10  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31
[HackThis] Real level2  (0) 2018.08.31
[HackThis] Intermediate level3  (0) 2018.08.29

목표의 계정의 접근해서 혼란스럽게 만드시오...



해당 링크에 접속하면 다음과 같은 페이지가 나오게됩니다.


문제에 "World of Peacecraft"에 중독되 있다고하니 해당 게시글로 이동해봅니다.



링크를 누르고 계정 비밀번호를 입력하라고 합니다.



test를 입력해 봤는데 실패라고 나오는 걸 보니 이 페이지가 인증 페이지로 보여집니다.



다른 페이지에 들어가서 비밀번호를 알아낼 수 있는 힌트가 있는지 확인해봅니다.


첫 페이지에 두번째 글에는 별다른 내용이 없었으면


이어지는 "Outbox", "Sent Messages"도 비어져 있어 의미가 없었습니다.





"Trash"에 가보니 "Password Request"라는 글이 하나 있습니다.


누군가 Password를 새로 요청한 것으로 보입니다.



내용을 확인하니 다음과 같이 password를 알려주면서 즉시 email을 삭제하라고 했습니다.


삭제를 했지만 휴지통에 남아있어 정보를 흘리고 다녔네요..


해당 값으로 인증 페이지로 가서 인증하면 성공하게 됩니다.



'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Main level10  (0) 2018.08.31
[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level2  (0) 2018.08.31
[HackThis] Intermediate level3  (0) 2018.08.29
[HackThis] Intermediate level2  (0) 2018.08.29

가난한 학생이 학교 도서관의 도서 연체료를 내라는 편지를 자주 받았는데


도와달라는 내용입니다.



Library Gateway를 들어가보시면 Login이라는 링크가 생겨 또 들어갑니다..



해당 페이지에서 올바른 Username, Password를 입력하면 해결 될꺼같습니다.



일단 아무 정보도 없어서 test / test를 입력해봤더니 "Incorrect username/passwod"라는 문구가 하나 나오게 됩니다.



소스를 확인해 보니 아래와같은 javascript가 작성되어 있었습니다.


내용을 보니 username, password를 입력하고 Login버튼을 누르면 그 값으로 URL 상수를 만들고

XML 객체를 생성하고, 접속에 성공(200)하면 처음 페이지로 user,pass 값을 보내 성공하게 됩니다.


그렇다면 어떤 정보를 가지고 해당 계정을 알아 내야할 까요..?


유심히 보다보면 URL 상수를 만들때 "member/" 에 무언가 있는거 같습니다.


해당 페이지로 이동해보면...


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
32
33
34
35
36
<script type="text/javascript">
var req, image, status, imagepath;
 
function loadimage()
{
    var username= document.getElementById('username').value;
    var password= document.getElementById('password').value;
    URL= "members/" + username + " " + password + ".htm";
    path = URL;
    document.getElementById("status").innerHTML = 'Checking details...';
 
    req = getreq();
    req.onreadystatechange = exists;
    req.open("get", path, true);
    req.send(null);     
}
 
function exists() {
    if(req.readyState == 4) {
        if(req.status == 200) {
            document.getElementById("status").innerHTML = 'Correct!';
            document.location = "/levels/real/2?user=" + document.getElementById('username').value 
+ "&pass=" + document.getElementById('password').value;
        } else {
            document.getElementById("status").innerHTML = 'Incorrect username/password';
        }
    }
}
 
function getreq() {
    if(window.XMLHttpRequest)
        return new XMLHttpRequest();
    else if(window.ActiveXObject)
        return new ActiveXObject("Microsoft.XMLHTTP");
}
 
</script>
cs


아래와 같이 6가지가 있습니다.


URL에보면 Spacebar로 username과 password를 구분했던 것을 확인할 수 있습니다.


이중에 뭔가 해당하는 값임을 짐작하고 'librarian'이 제일 의심되어 해당 값으로 인증해 보았습니다.



다음과 같이 성공하게 됩니다.!!




저기있는 모든 값이 성공하는지 궁금해서 다 해봤는데


sam sam을 제외한 모든 값은 아래와 같이 "Correct!"는 되지만 인증에 성공하지는 않았으며


sam sam은 "InCorrect!" 메시지와 함께 실패하게 됩니다.




"librarian" 의 뜻은 "사서"이며 사서로 로그인하여 연체 내용을 지우라는거였는지... 어떤 조작을 위한 발판이였을까요?

'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Main level9  (0) 2018.08.31
[HackThis] Real level1  (0) 2018.08.31
[HackThis] Intermediate level3  (0) 2018.08.29
[HackThis] Intermediate level2  (0) 2018.08.29
[HackThis] Intermediate level1  (0) 2018.08.29

위험하다는 경고와함께 제한된 구역이라는 이미지가 있습니다.


눌러보면 https://www.hackthis.co.uk/levels/intermediate/3?enter 라는 곳으로 이동하고 실패했다고 합니다.



해당 구문으로 가보면 다음과같이 <a> 태그로 '?enter'로 접속하게 됩니다.


여기서는 해결할만한 것이 보이지 않습니다.


1
2
3
4
<a href="?enter" style="text-decoration: none">
    <img border="0" src="/levels/extras/i3.jpg"><br>
    ENTER SITE
</a>
cs


개발자 도구에서 쿠키값을 확인해 봤습니다.


전에 없던 restricted_login이라는 쿠키가 false로 되어있습니다.


제한된 로그인인 뜻으로 true로 바꿔주면 로그인이 되고 해결됩니다.



'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Real level1  (0) 2018.08.31
[HackThis] Real level2  (0) 2018.08.31
[HackThis] Intermediate level2  (0) 2018.08.29
[HackThis] Intermediate level1  (0) 2018.08.29
[HackThis] Main level8  (0) 2018.08.29

1번과는 달리 Post 방식을 이용해서 값을 보내면 됩니다.


Post는 URL에 그 정보가 보여지지 않아서 민감한 데이터를 보낼때 사용합니다.



Post방식을 사용하기 위해서 HTML소스를 수정할 필요가 있습니다.


<form> 태그로 method를 post로 설정하면 태그안에 값들이 POST 방식으로 전송되게 됩니다.


이때 Text창을 만들때 name을 password로 주어야 서버쪽에서 검증할때 password=flubergump 라고 생각하게 됩니다.


1
2
3
4
<form method="post">
    <input type="text" name="password">
    <input type="submit" value="submit">
</form>
cs


만들게 되면 아래와 같이 입력할 수 있는 Text창과 전송하는 버튼이 생기고 


'flubergump' 입력하셔서 보내면 성공하게 됩니다.



'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Real level2  (0) 2018.08.31
[HackThis] Intermediate level3  (0) 2018.08.29
[HackThis] Intermediate level1  (0) 2018.08.29
[HackThis] Main level8  (0) 2018.08.29
[HackThis] Basic+ level2  (0) 2018.08.29

Get 방식을 사용해서 password를 보내면 된다고 합니다.


Get 방식은 URL에 들어나면서 전송되는 값이므로 URL창에 해당 내용을 작성하면 됩니다.



값을 보낼때는 '?'를 붙이고 그 뒤에 전달할 인자를 씁니다.



'WarGame > hackthis.co.uk' 카테고리의 다른 글

[HackThis] Intermediate level3  (0) 2018.08.29
[HackThis] Intermediate level2  (0) 2018.08.29
[HackThis] Main level8  (0) 2018.08.29
[HackThis] Basic+ level2  (0) 2018.08.29
[HackThis] Main level7  (0) 2018.08.29

+ Recent posts