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


도와달라는 내용입니다.



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

Coder가 level4와 같은 실수를 했다고 합니다.


level4에서의 실수는 hidden 타입으로 ID,PWD 위치를 알려줬던 문제입니다.



소스보기로 보시면 다음과 같이 File 위치가 나와있으니 이동합니다.


해당 URL의 접속하시면 다음과 같이 2진수로된 값들이 표시가 되어있고


HINT에 보시면 2진수를 16진수로 바꾸라고 되어있습니다.


또한, 대문자로 인증하라고하니 해당값을 16진수로 바꿔 인증하시면 성공합니다.



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

[HackThis] Intermediate level2  (0) 2018.08.29
[HackThis] Intermediate level1  (0) 2018.08.29
[HackThis] Basic+ level2  (0) 2018.08.29
[HackThis] Main level7  (0) 2018.08.29
[HackThis] Coding level2  (0) 2018.08.28

user_agent에 관한 내용입니다.


user_agent로는 접속이 허용안되고, secure_user_agent로 해야한다고합니다.



이리저리 하던 중 Chrome에서 User-Agent Switcher 라는 기능을하는 도구가 있었습니다.


해당 도구를 다운로드 후 값을 변경해주면 될것같습니다.


이 도구는 Chrome 브라우져를 다른 기기처럼 사용할 수 있습니다.



아래와 같이 설치를 하시면 URL창 우측에 해당 아이콘이 나타나고 Chrome을 통해 다른 브라우져로 접속한 효과를 낼 수 있습니다.


Andoroid와 iOS도 가능하여 핸드폰으로 접속한 것과 같은 효과도 낼 수 있어 유용한 기능입니다.



그중에 사용할 기능은 Setting에 들어가시면 다음과같이 User-agent 이름, 값, 그룹 등을 설정 할 수 있습니다.


여기서 그룹은 브라우져 명입니다.



처음에는 user_agent이름 자체를 secure_user_agent로 바꿔야하는 줄알고 2번째와 같이 설정했지만 실패했습니다.


그러다 값을 수정해야 된다고 생각하여 다음과 같이 값을 secure_user_agent로 설정 후 접속해보니 성공하였습니다.




사실 proxy를 사용하는 방법도 있습는데 프록시 설정하고 BrupSuite를 사용하면 경고창이 나와서 ... 이렇게 했습니다.


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

[HackThis] Intermediate level1  (0) 2018.08.29
[HackThis] Main level8  (0) 2018.08.29
[HackThis] Main level7  (0) 2018.08.29
[HackThis] Coding level2  (0) 2018.08.28
[HackThis] Coding level1  (0) 2018.08.28

Hint를 보니 Password는 txt파일로 다시 저장된다고 나와있고 소스보기로 힘들꺼라고 합니다.


또한 검색 봇이 배제되어있어 페이지를 찾을 수 없다고합니다.


어떻게 해야할까 막막하기도하여 Forum을 봤습니다.ㅜ


Forum의 내용중의 robots.txt에 대한 얘기가 나와 검색해봤습니다.



나무위키에 따르면


robots.txt는 웹사이트에 웹 크롤러 같은 로봇들의 접근을 제어하기 위한 규악이라고 합니다.


또한 robots.txt.를 사용하기 위해서는 반드시 웹사이트의 최상위 경로에 있어야 한다고 합니다.


www.hackthis.co.uk의 경우 '/'만 붙인 곳이 최상위 경로니 그뒤에 /robots.txt를 더해 있는지 확인해봅니다.



위와 같이 robots.txt가 존재했으며 다양한 페이지들이 크롤러의 의해 검색되는 것을 방지합니다.


  User-agent: 해당 agent에 대한 규약

  Allow: 허용

  Disallow: 허용x


그중에 userpass.txt 가 가장 의심스러워 해당 페이지로 접속해봅니다.


아래와 같이 username, password가 나와 인증하면 성공하게 됩니다.



[참고]

나무위키: https://namu.wiki/w/robots.txt

HackThis Forum: https://www.hackthis.co.uk/forum/level-discussion/main-levels/main-level-7/35036-warm-but-not-hot

robots.txt 현명하게 사용하는 방법: https://korea.googleblog.com/2008/04/robotstxt.html

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

[HackThis] Main level8  (0) 2018.08.29
[HackThis] Basic+ level2  (0) 2018.08.29
[HackThis] Coding level2  (0) 2018.08.28
[HackThis] Coding level1  (0) 2018.08.28
[HackThis] Crypt level5  (0) 2018.08.26

coding level1과 비슷하게 알수없는 숫자들과 답을 적는란이 있습니다.


동일하게 5초의 시간이 주어지고 있으니 똑같이 level1의 코드와 비슷할 것으로 보입니다.



우선 어떤 알고리즘을 통해 저 문자열이 되었는지 알아내기 위해 알려준 곳으로 이동해봅니다.



① 33이 1이되고 34가 2가 되는 걸 보니 Ascii 값의서 -32를 합니다.

② 새로 생긴 Ascii 값을 가지고, 눈으로 보이는 모든  Ascii 값 중 눈에 보이는 갯수만큼에서 빼라고합니다.

③ 띄어쓰기는 아무것도 표시하지 않고 비워줍니다.


이 것으로 봤을때 알고리즘은 다음과 같습니다.


  old (암호화 전)

  new = old -32 

  total_Ascii - new = payload



  old: 암호화 하기전 값

  new: 새로운 Ascii값

  total_Ascii: 눈에 보이는 모든 Ascii 값들

  payload: 암호문으로 나와있는 값

  

여기서 total_Ascii값은 Ascii 코드 128개중 눈으로 볼수 있는 알파벳 대/소문자, 특수문자, 숫자가 됩니다. (총 94개)


결국 우리가 구하려는 old = 126 - payload 이 됩니다.


이 정보를 가지고 코딩을 하면 다음과 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
payload = '43,61,37,43, ,54,57,44, ,53,48,42,47, ,47,56,42,57,48, '
payload += ',61,50,43,47, ,39,54,47,49, ,59,61,48,48,47,42, ,42,39,61,43, '
payload += ',60,57,57,48, ,57,50,43,57, ,39,53,42,54, ,47,56,56'
payload = payload.split(',')
 
result = ''
for i in range(len(payload)):
    if payload[i] != ' ':
        result += chr(126-int(payload[i]))
    else:
        result += ' '
 
print(result)
cs


실행하면 다음과 같은 읽을 수 있는 문자열이 됩니다.


SAYS HER INTO OFTEN ALSO WHOM CANNOT TWAS BEEN ELSE WITH OFF


이제 level1과 같이 requests를 이용해서 코드를 짜보면 다음과 같습니다.


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
import requests
from bs4 import BeautifulSoup
 
url = 'https://www.hackthis.co.uk/levels/coding/2'
 
LOGIN_INFO = {
    'username''YourID',
    'password''YourPWD'
}
 
with requests.Session() as s:
    login_req = s.post('https://www.hackthis.co.uk/?login', data=LOGIN_INFO)
 
    req = s.post(url)
    html = req.text
    soup = BeautifulSoup(html, 'html.parser')
    textarea = soup.find('textarea')
    
    payload = textarea.string.split(',')
    data = ''
    for i in range(len(payload)):
        if payload[i] != ' ':
            data += chr(126-int(payload[i])) #94+32
        else:
            data += ' '
            
    data = {'answer':data}
    s.post(url, data=data)
cs


이대로 실행해보면 ... 왠지 모르지만 성공을 하지 않습니다... 


그렇게 몇번 실행해보고 생각해보니 혹시 대문자여서 안되나 싶어서 +32를 더 시켜 소문자로 만들어서 실행해보니


성공하게 되었습니다... 흠..


(해석을 못해서..?)





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

[HackThis] Basic+ level2  (0) 2018.08.29
[HackThis] Main level7  (0) 2018.08.29
[HackThis] Coding level1  (0) 2018.08.28
[HackThis] Crypt level5  (0) 2018.08.26
[HackThis] Crypt level4  (0) 2018.08.26

문제를 보면 단어들이 뒤죽박죽 섞여있으며 순서대로 정렬 후 제출하면 성공합니다.


하지만 시간은 5초만 주어져있고 매번 글자는 랜덤하게 변경됩니다.

 

Coding level이니 만큼 알맞은 코드를 작성해서 전송하면 될것으로 보입니다.



Python을 주로 사용하기에 Python을 이용해서 문제를 풀었습니다.



① Cookie를 이용해 시도

처음에 생각했던 내용은 requests와 BeautifulSoup 모듈을 이용해 해당 페이지에 접근해서 데이터를 가져오는 방법이였습니다.


BeautifulSoup은 HTML과 XML을 파싱하는데 사용됩니다.


다음과 같이 Cookie 값을 이용해서 해당 페이지에 로그인된 상태로 접근하고 데이터를 가져와 전송해봤습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests
from bs4 import BeautifulSoup
 
cookies = {'PHPSESSID':'YourCookie'}    # 본인의 cookie 값 확인
url = 'https://www.hackthis.co.uk/levels/coding/1' 
 
req = requests.post(url, cookies=cookies)    # post 방식으로 cookie값을 가진채 페이지 요청
html = req.text        # 해당 페이지의 모든 html text 불러오기
 
soup = BeautifulSoup(html, 'html.parser')
textarea = soup.find('textarea')    # textarea 태그를 찾기
 
payload = textarea.string.split(', ')
payload.sort()
data = ", ".join(payload)
print(data)
requests.post(url, data=data)
cs



결과는 실패..


생각을 해보니 cookie 값을 가지고 url을 요청하다보면 데이터를 가져올 수 있지만


마지막에 다시 데이터를 보내기위해 requests.post 할 때 새로운 페이지가 열리게 되어 정렬해야할 값이 달라지는 것 같습니다



② selenium를 이용해 시도


브라우져를 컨트롤 할 수 있다는 selenium을 사용해 봤습니다.


submit 버튼을 클릭해야 겠다고 생각하여 버튼 클릭을 할 수 있는 모듈을 찾아보니 selenium으로 가능했습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from selenium import webdriver
 
url = 'https://www.hackthis.co.uk/levels/coding/1'
path = "chromedriver_win32/chromedriver.exe"    # Chrome Driver File
driver = webdriver.Chrome(path)
 
driver.get(url)
cookie = {'name':'PHPSESSID''value':'YourCookie'}
driver.add_cookie(cookie)
driver.get(url)
 
element = driver.find_element_by_xpath("//textarea")
textarea = element.get_attribute("value")
str(textarea)        # textarea type이 unicode이기에 변경 후 정렬
payload = textarea.split(', ')
payload.sort()
data = ", ".join(payload)
 
 
element = driver.find_element_by_name("answer")
element.send_keys(data)
 
#driver.find_element_by_id('submit').click()
cs


우선 마지막 라인 보시면 주석으로 해놨는데.. 버튼 클릭은 하다가 말았습니다.


대신 아래 사진을보시면 로그인도 잘 수행했으며 Answer에도 정확하게 값이 들어간 걸 확인할 수 있었습니다.


시간도 2초가량 남아서 그대로 그냥 Submit 버튼을 클릭했지만 로딩되는 시간이 길다보니 0초가 되어 성공하지 못했습니다.




③ Session을 이용!!


첫번째 쿠키를 이용했을때 느꼈던건 쿠키를 가지고는 못할 것 같다고 생각했으며


Session을 유지할 수 있다면 가능할 꺼란 생각에 다음과 같이 코등했습니다.


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
import requests
from bs4 import BeautifulSoup
 
url = 'https://www.hackthis.co.uk/levels/coding/1'
 
LOGIN_INFO = {
    'username''YourID',
    'password''YourPWD'
}
 
with requests.Session() as s:
    login_req = s.post('https://www.hackthis.co.uk/?login', data=LOGIN_INFO)
 
    req = s.post(url)
    html = req.text
    soup = BeautifulSoup(html, 'html.parser')
    textarea = soup.find('textarea')
    
    payload = textarea.string.split(', ')
    payload.sort()
    data = ", ".join(payload)
    data = {'answer':data}
    print(data)
    s.post(url, data=data)
 
cs



결론적으로는 성공했으며 Session 유지도 잘 되었고 깔끔하게 되었습니다.


진짜 삽질도 많이했네요 .ㅜㅜ


근데 확인하고 싶은 내용은 ① 에 쿠키를 이용할 때 제가 놓쳤던 부분인데


③의 Line:22를 보시면 data = {'answer':data}를 한게 보일껍니다. 


쿠키를 이용할 때는 그냥 보내면 될꺼라는 생각에 보내기만 했는데 Session 할때 해보니깐


data를 보내도 answer에 적혀있는 데이터여야 정답처리가 된다는 것을 알아기에 다음과 같이 코딩 했습니다.


그런데 이미 completed가 되어 이게 되는지 안되는지 확인을 못하네요 .. ㅜ




[참고]

나만의 웹 크롤러 만들기: https://beomi.github.io/2017/01/20/HowToMakeWebCrawler-With-Login/

문과생도 할 수 있는 웹 크롤링: http://sacko.tistory.com/14?category=643535

Python selenium: https://selenium-python.readthedocs.io/navigating.html?highlight=add_cookie

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

[HackThis] Main level7  (0) 2018.08.29
[HackThis] Coding level2  (0) 2018.08.28
[HackThis] Crypt level5  (0) 2018.08.26
[HackThis] Crypt level4  (0) 2018.08.26
[HackThis] Crypt level3  (0) 2018.08.25

Crypt level4 처럼 알고리즘을 알아내지 못하고.. 결국 무자비로 해야했습니다.



우선 형식을 보아하니 뒤집어져 있는거 같습니다.

해석하기 앞서서 문자열을 뒤집어 봅니다.


python으로 간단하게 뒤집을 수 있습니다.



① 'fdcc' == 'pass' 는 확실히 알 수 있는 단어입니다.

a

d

g

 

m


s

c

y


b

 

h

 

n

 

t

 

z


c

 

i

 

o

 

u

 



d

 

j


p

f

v




e

 

k


q

 

w




f


l


r


x




(암호 전/후)


Tls i an a kqinimae. Nt kqinl is ypay oh kzqiosiyt. Nt kqinl is ypay oh bzagimg plopel jt wpay yplt sat ama ypims, moy wpay yplt eoos eisl. Nt kqinl is ypay oh ozysnaqyimg toz, Conlypimg ypay toz wiee mlxlq hoqgixl nl hoq. Jzy ypl pass: YplNlmyoq



② 'plopel' == 'people' 이라는 단어라고 생각됩니다.

'l'은 'e'이고, 'e'는 'l' 라고 생각하고 진행합니다. (이때 암호 문자들이 서로서로 바뀐게 아닐까라는 의심이 되었습니다.)

또한 'o'는 변화가 없는거 같습니다.

a

d

g

 

m


s

c

y


b

 

h

 

n

 

t

 

z


c

 

i

 

o

o

u

 



d

 

j


p

f

v




e

l

k


q

 

w




f


l

e

r


x





python으로 한번에 하고싶은데.. 'l'이랑 'e'가 서로 바뀐거면 애매해져서 손으로 합니다...


Tes i an a kqinimal. Nt kqine is ypay oh kzqiosiyt. Nt kqine is ypay oh bzagimg people jt wpay ypet sat ama ypims, moy wpay ypet loos lise. Nt kqine is ypay oh ozysnaqyimg toz, Coneypimg ypay toz wiee mexeq hoqgixe ne hoq. Jzy ype pass: YpeNemyoq



③ 'Tes' == 'Yes' ▶ 'Nt' == 'My' ▶ 'jt' == 'by'

'Tes'에서 'es'는 이미 변경된 문자고 그렇게 보면 'Yes'라고 판단되고

'Nt'는 'My'가 제일 어울릴 것 같습니다.

'jt'는 'by'가 제일 어울릴 것 같습니다.

(확실한 문자를 풀면 다른 확실한 단어를 찾으면 됩니다)


1:1 대응이라고 생각이되니 진행해 보겠습니다.

a

d

g

 

m

n

s

c

y

t

b

j

h

 

n

m

t

y

z


c

 

i

 

o

o

u

 



d

a

j

b

p

f

v




e

l

k


q

 

w




f


l

e

r


x





Yes i am a kqiminal. My kqime is tpat oh kzqiosity. My kqime is tpat oh jzdging people by wpat tpey say and tpins, not wpat tpey loos lise. My kqime is tpat oh oztsmaqting yoz, Sometping tpat yoz wiee nexeq hoqgixe me hoq. bzt tpe pass: YpeMentoq



④ 'jzdging' == 'judging' / 'Cometping' == 'Something'

'jzdging'에서 'z'만 바뀌지 않았고 사전 검색하니 'judging'라는 단어가 있었습니다.

'Sometping'에서 'p'는 'Something'이라는 말이 어울리므로 다음과 같이 바꿔줍니다.

또한, 'g'와 'i'는 고정인거 같습니다

a

d

g

g

m

n

s

c

y

t

b

j

h

p

n

m

t

y

z

u

c

 

i

i

o

o

u

z



d

a

j

b

p

f

v




e

l

k


q

 

w




f


l

e

r


x





Yes i am a kqiminal. My kqime is that oh kuqiosity. My kqime is that oh judging people by what they say and thins, not what they loos lise. My kqime is that oh outsmaqting you, Something that you will nexeq hoqgixe me hoq. but the pass: TheMentoq



⑤ 'lise' == 'like' / 'outsmaqting' == 'outsmarting' ▶ 'kqime' == 'crime'

a

d

g

g

m

n

s

c

y

t

b

j

h

p

n

m

t

y

z

u

c

k

i

i

o

o

u

z



d

a

j

b

p

f

v




e

l

k

s

q

r

w




f


l

e

r

q

x





Yes i am a criminal. My crime is that oh curiosity. My crime is that oh judging people by what they say and think, not what they look like. My crime is that oh outsmarting you, Something that you will nexer horgixe me hor. but the pass: TheMentor



⑥ 'nexer' == 'never' ▶ 'horgixe' == 'forgive'

a

d

g

g

m

n

s

c

y

t

b

j

h

p

n

m

t

y

z

u

c

k

i

i

o

o

u

z



d

a

j

b

p

f

v

x



e

l

k

s

q

r

w

w



f

h

l

e

r

q

x

v




Yes i am a criminal. My crime is that oh curiosity. My crime is that oh judging people by what they say and think, not what they look like. My crime is that oh outsmarting you, Something that you will never forgive me for. but the pass: TheMentor



문자열을 모두 복호화 했습니다...


몇몇 글자는 변하지 않았으며 대부분의 문자는 대칭을 이루고 있습니다....

(이렇게 하는게 맞는건가요 ㅜㅜ)

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

[HackThis] Coding level2  (0) 2018.08.28
[HackThis] Coding level1  (0) 2018.08.28
[HackThis] Crypt level4  (0) 2018.08.26
[HackThis] Crypt level3  (0) 2018.08.25
[HackThis] Crypt level2  (0) 2018.08.25

+ Recent posts