googleAdsense_widever


hackthissite - realistic - 6 해킹


ToxiCo Industrial Chemicals
Decrypt a heavily encoded message from a CEO trying to bribe ecological inspectors investigating water pollution issues. Help environmentalists uncover corporations plotting to profit from the destruction of mother nature! 

별로 그 음모를 방해하고 싶지 않긴 하지만.


메시지 : 안녕하세요 존경하는 해커님, 당신이 상당한 암호화 기술을 
알고 있길 바래요. 전 지금 어떤 암호화된 텍스트를 가지고 있어요.
전 ToxiCo 인더스트리하는 화학회사에서 일하고 있는데, 최근에
독성 화학물질을 근처 강가에 쏟아붇다가 화재가 났어요.
생태조사관들은 아무 문제가 없다고 보고했지만 블라블라

전 제 네트워크에서 패킷을 스니핑했고, 우리 회사의 CEO가 생태조사관 
Samuel Smith에게 보내는 이메일을 발견했어요.
하지만 그건 함호화되어 있었고, 제가 가진 간단한 복호화 도구로는
풀어낼 수 없어서 그 내용은 알 수 없었어요.
블라블라 해결해줘






문제에 들어가니 http://www.hackthissite.org/missions/realistic/6/index.html
숫자들의 나열이 보인다. 이게 암호문인 것 같다.

I believe this document to be encrypted using the XECryption algorithm.
Please recover the original text of this document and return it to me.
.296.294.255.268.313.278.311.270.290.305.322.252.276.286.301.305.264.301.251.269.274.311.304.
230.280.264.327.301.301.265.287.285.306.265.282.319.235.262.278.249.239.284.237.249.289.250.
282.240.256.287.303.310.314.242.302.289.268.315.264.293.261.298.310.242.253.299.278.272.333.
272.295.306.276.317.286.250.272.272.274.282.308.262.285.326.321.285.270.270.241.283.305.319.
246.263.311.299.295.315.263.304.279.286.286.299.282.285.289.298.277.292.296.282.267.245.304.
322.252.265.313.288.310.281.272.266.243.285.309.295.269.295.308.275.316.267.283.311.300.252.
270.318.288.266.276.252.313.280.288.258.272.329.321.291.271.279.250.265.261.293.319.309.303.
260.266.291.237.299.286.293.279.267.320.290.265.308.278.239.277.314.300.253.274.309.289.280.
279.302.307.317.252.261.291.311.268.262.329.312.271.294.291.291.281 …계속…

 XECryption algorithm. 의 링크에 들어가니 친절하게 암호화는 해볼수 있게 되어있다.
물론 아래에 password를 입력하라고 하지만 ' or 1=1-- 로 간단하게 pass할 수 있다.
어떤 의미로는 어 word의 나열 역시 일종의 pass를 위한 words가 아닐까? 그래서 password.

이 사이트 문제들은 이런 injection 우회를 지나치게 많이 쓴다. 
그만큼 예전에는 입력구문 검증에 많이 취약했다는 것을 말하는 것일 수도 있겠다.


일단 시험삼아 hellow 를 encryption 해보니 
.247.214.220.224.234.220.234.258.193.214.252.219.217.247.224.204.258.234
라는 숫자의 나열이 나온다.

한 블럭을 숫자덩이 3개로 잡으니 6블럭으로 떨어지고, 
한 숫자 덩이에 포함된 숫자도 3글자이니, 꽤 설득력있다.
그리고 숫자 덩이 하나의 가장 첫부분은 마침표(.)로 시작한다.

.247.214.220 : H
.224.234.220 : E
.234.258.193 : L
.214.252.219 : L
.217.247.224 : O
.204.258.234 : W

그런데 L의 암호문이 서로 다르다. 역시나 같은 한 글자를 입력해도 결과는 다르게 나타난다.
아마 GMT 같은 시간 값을 섞어서 암호화를 하는 것 같다.

아니 그런데 암호화를 할 때, 입력하는 password가 아무런 값이 되어도, 암호화는 진행이 된다. 아무 값도 없지 않아도.
그리고 가끔 .-9 같이 dash(-)기호도 나타난다. 한 덩이에 3개 숫자가 반드시 지켜지진 않는다.

ascii - html table과 관련있는 것 같다.

encryption password가 도대체 뭐에 쓰이는지는 제쳐두고,
a를 encryption 하여 나오는 암호문 
.40.7.50
.26.57.14
.8.36.53
들의 공통점은 각 숫자 3개를 모두 더하면 97이라는 값이 나온다는 것이다.
그리고 &#97 이라는 값은 ascii code에서 'a'를 의미한다.

아, 그리고 encryption password가 어디에 쓰는 건지 알았는데,
암호문 총합은 평문의 ascii 값 + enPass ascii 값이 되는데에 이용된다.
나는 enPass에 아무 값도 넣지 않았고, 이에 해당하는 null 의 ascii 값은 0이다.
그래서 암호문 총합 = 평문 ascii 가 됐던 것.

이제 모두 완료되었으니, 프로그램 소스만 짜서 돌리면 된다.

이 문제. 한 마디로 정말 쓰.레.기 다.
아니면, 내가 realistic 문제는 웹해킹 문제라고 생각했던게 잘못이던지.

적어도, encryption password의 암호를 post 메소드와 연관 지었더라면 쓰레기라는 말까지는 안나왔겠지만.
출제자가 알콜에 쩔어서 냈던지, 아니면 알콜에 쩔어서 대신 다른 인간이 냈던지.

이런 쓰잘데기 없는 암호학문제 같은건 초중고생 대상의 교양서적에나 나오면 되잖아.


- visual studio 2010 을 10번 정도 지울만한 시간이 지난 후.. - 


아, 너무 무거워서 vs2010 지워버리고 그냥 javascript로 짜는데
문법을 제대로 알아야지.. 코드 한 줄에 한 페이지씩 찾아가면서 완성했다.

아 ㅆㅂㄻ 갠ㅇㅈㄹㄷ html 업로드 못한다.
소스는 다음과 같음 suckfuckgoddamndecrypter.html에 저장해서 열어보면 된다.

------- 소스 코드 시작 -------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Damned Fucking Decrypter</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />

<script type="text/javascript">
function FucDec(){
var splitRaw;
var rawText = document.form1.encText.value
var splitText = rawText.split(".")
splitWordInAscii = new Array(splitText.length/3)
var DECRIPTION_KEY = parseInt(document.form1.key.value)
var combineText = ""
var hexText = ""
var plainText = ""

if (splitText.length%3 == 0){
for(i=0; i<=splitText.length-3; i+=3){
var sum3 = 0
for(j=0; j<=2; j++){
sum3 += parseInt(splitText[i+j])
}
splitWordInAscii[i/3] = sum3 - DECRIPTION_KEY
hexText += "%"+(splitWordInAscii[i/3].toString(16))
}
}else{
alert("제대로 쳐넣었는지 확인 좀 해주실래요?")
}

document.form1.combineText.value = splitWordInAscii
document.form1.hexText.value = hexText
document.form1.plainText.value = (unescape(hexText))
}
</script>

</head>

<body>
<form name="form1">
<p>
<textarea name="encText" rows="8" cols="42">296.294.255.268.313.278.311.270.290.305.322.252.276.286.301.305.264.301.251.269.274.311.304.230.280.264.327.301.301.265.287.285.306.265.282.319.235.262.278.249.239.284.237.249.289.250.282.240.256.287.303.310.314.242.302.289.268.315.264.293.261.298.310.242.253.299.278.272.333.272.295.306.276.317.286.250.272.272.274.282.308.262.285.326.321.285.270.270.241.283.305.319.246.263.311.299.295.315.263.304.279.286.286.299.282.285.289.298.277.292.296.282.267.245.304.322.252.265.313.288.310.281.272.266.243.285.309.295.269.295.308.275.316.267.283.311.300.252.270.318.288.266.276.252.313.280.288.258.272.329.321.291.271.279.250.265.261.293.319.309.303.260.266.291.237.299.286.293.279.267.320.290.265.308.278.239.277.314.300.253.274.309.289.280.279.302.307.317.252.261.291.311.268.262.329.312.271.294.291.291.281.282.292.288.240.248.306.277.298.295.267.312.284.265.294.321.260.293.310.300.307.263.304.297.276.262.291.241.284.312.277.276.265.323.280.257.257.303.320.255.291.292.290.270.267.345.264.291.312.295.269.297.280.290.224.308.313.240.308.311.247.284.311.268.289.266.316.299.269.299.298.265.298.262.260.337.320.285.265.273.307.297.282.287.225.302.277.288.284.310.278.255.263.276.283.322.273.300.264.302.312.289.262.236.278.280.286.292.298.296.313.258.300.280.300.260.274.329.288.272.316.256.259.279.297.296.283.273.286.320.287.313.272.301.311.260.302.261.304.280.264.328.259.259.347.245.291.258.289.270.300.301.318.251.305.278.290.311.280.281.293.313.259.300.262.315.263.319.285.282.297.283.290.293.280.237.234.323.289.305.279.314.274.291.309.273.294.249.283.262.271.286.310.305.306.261.298.282.282.307.287.285.305.297.275.306.280.292.291.284.301.278.293.296.277.301.281.274.315.281.254.251.289.313.307.244.256.302.301.317.305.239.316.274.277.296.269.305.301.279.287.317.284.277.305.298.264.304.286.273.275.293.309.286.282.240.287.239.268.269.267.315.311.292.270.271.272.336.282.237.275.316.306.239.305.314.240.296.306.270.247.245.302.317.316.241.291.310.266.274.274.313.288.262.319.280.276.238.297.295.287.285.288.301.272.275.247.305.292.286.272.310.291.301.322.256.315.298.263.281.276.237.294.284.296.284.302.273.298.287.298.301.265.305.270.315.278.283.302.287.263.270.345.258.270.266.302.309.262.260.277.327.263.277.254.283.276.239.272.264.276.279.264.267.298.264.244.245.273.292.289.273.248.259.263.288.290.294.210.288.268.311.318.312.242.285.293.216.262.276.340.292.299.275.259.293.311.234.266.294.278.307.286.267.307.285.269.310.288.274.270.326.273.276.311.304.267.302.318.265.299.263.283.248.257.314.288.321.321.236.284.283.227.320.312.246.261.289.316.288.263.312.241.265.288.298.286.287.274.306.279.276.289.307.303.293.281.298.317.252.312.283.278.263.304.305.258.266.270.294.286.293.290.291.291.258.254.282.282.283.313.268.282.316.310.299.254.264.234.296.270.265.326.288.292.293.321.305.250.320.299.253.270.296.297.298.266.312.234.273.287.309.286.278.269.279.316.284.276.234.293.255.267.242.253.318.270.246.278.292.285.282.314.266.292.286.263.313.249.290.255.289.264.292.301.299.278.291.292.225.250.261.283.303.262.264.264.303.299.297.274.288.267.293.316.320.317.233.303.258.302.271.283.323.247.279.268.312.269.297.313.280.280.273.266.332.276.313.284.281.316.279.290.273.313.308.305.260.302.306.273.234.279.281.284.298.278.259.290.314.275.264.339.293.322.266.261.296.306.277.275.311.284.270.318.259.249.286.292.301.285.280.303.283.287.299.277.273.293.228.311.283.272.304.292.277.271.306.302.278.298.300.287.281.309.243.272.279.282.300.291.295.284.285.252.291.251.285.283.245.250.252.318.298.277.235.288.259.263.278.274.307.261.260.350.250.288.256.282.316.261.285.295.292.300.298.264.245.241.308.301.261.253.289.264.267.300.262.248.287.257.266.275.287.297.320.287.264.279.297.232.231.256.288.243.252.277.274.245.256.253.229.290.263.305.278.260.294.312.283.301.275.276.299.297.312.275.282.294.272.228.302.324.257.261.286.326.280.283.316.294.254.258.275.264.236.240.277.255.231.258.286.242.277.253.296.290.250.314.320.239.292.313.261.294.261.317.273.285.236.292.282.271.264.297.300.272.308.299.300.269.301.269.317.284.286.262.315.276.279.328.269.254.252.232.272.268.309.273.264.296.305.272.267.291.324.302.297.268.268.263.298.300.261.312.241.254.299.280.263.292.260.301.311.317.297.248.314.272.293.298.281.298.276.311.291.297.318.261.274.300.293.297.267.295.261.275.334.289.238.267.289.283.257.300.262.304.311.278.274.265.261.345.301.296.270.273.299.289.274.272.313.282.268.320.287.320.270
</textarea><br /><br />
Decryption-key :
<label for="key"></label>
<input type="text" name="key" id="key" />
<br />
<input type="button" value="Fucking Decrypting" onclick="FucDec()" />
<br />
</p>
<p>the combine<br />
<textarea name="combineText" rows="8" cols="42"></textarea>
</p>
<p>in Hex<br />
<textarea name="hexText" rows="8" cols="42"></textarea>
</p>
<p>complete plainText<br />
<textarea name="plainText" rows="8" cols="42"></textarea>
</p>
</form>
</body>
</html>
------- 소스 코드 종료 -------

아, 그리고 Decryption Key 값은 '762'이다.
또, 복호화가 끝난 뒤 남는 '%d%a' 라는 부분은, 지우고 엔터 한 번 쳐주면 된다.

그러면 짜잔, 하고 써줄 줄 알겠지만 안 써준다.
그렇게 나온 평문을 hackthissite 메인 페이지 중 HTS messages center 메뉴로 가서 보내주면 된다.

그러면 끝.

이번 판은 정말 '짜증'났다.
쉽게 하려고 코드를 찾으니 http://www.aldeid.com/index.php/Hackthissite/Realistic/Level6 에도 없고,
이 양키 자식도 어디서 프로그램 주워와서.
웹해킹 하려면 코드는 스크립트로 짜란 말이야, 무슨 씨불불을 들이대고 있냐고
고작 이거 풀자고 설치패키지까지 만들어서 배포하는걸 다운받아 쓰다니? 말이되냐고
더듬더듬 코맹맹이 자식 툭하면 I'm tired 래

아무튼 포스팅은 마친다.

ssimzi
User AvatarRank: Script Kiddie (800 Points)Rank Badge
Status: Online

UserID: 1516096
Joined: 16/10/2010 7:59:57
Last Login: 22/10/2010 17:20:38
Last Active: 22/10/2010 17:25:15
Hobbies: Not Entered
Location: Not Entered
Website: http://none
TimeZone: GMT
Birthday: Not Entered
E-mail: Hidden
MSN: None
AIM: fcliver
ICQ: None
Yahoo: None
IRC?: None

Warn Level: No warning
Voice: ssimzi is not muted.
Basic: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
Realistic: (1) (2) (6) (8) (9)



덧글

댓글 입력 영역


공지

어서오십시오.
트위터 : @FCliver
기저심리학 : 네이버카페
카카오톡 : FCliver
페이스북 : Fredric Cliver

통계 위젯 (화이트)

40
50
288879

접속자 위치