Hack This Site(Level 1-6)

自己看了一下,代碼那部分亂了,可以自己用電腦看或者瀏覽器模擬電腦請求。

我把代碼順便截圖一起發一下。

不廢話了,直接從Basic開始。

LEVEL 1:


很簡單,由題意基本可以知道,密碼就在HTML裏,查源碼,搜password,

就出來了。

LEVEL 2:


能讀懂的就沒什麼疑問了,忘記上傳密碼的文件了,顯然服務器程序沒辦法從文件中取到值,也就是取到的爲NULL,直接空密碼過。

LEVEL 3:


一開始沒怎麼明白,不明白就看源碼就對了。

定位到提交按鈕,發現有個type爲hidden的標籤,後面顯然是一個地址,試試看能不能去。


訪問得出來的就是密碼了。

LEVEL 4:


題目顯然讓我們去找一下這個發送郵件的問題了,F12開發者工具定位這個按鈕,


又是一個hidden類型的,看到後面的value可以想到這是不是就是他的郵箱,如果將其改爲自己的郵箱,服務器若是根據此值發送郵件,那麼就可以將密碼發送到自己的郵箱裏了。

開發者工具修改此Element的值。


改爲自己的郵箱後發送。


可以看到,這個邏輯確實是我們想象得那樣,查一下郵箱,


密碼就出來了。

LEVEL 5:

操作和LEVEL 4 一樣就可以出來。就不多作解釋了。

LEVEL 6:


由題目可以知道,這道題就不再是考HTML的基礎知識了。而是考了密碼學。

密碼學其實就是規律題,這點是要謹記的,先填個123456進去看看加密後的字符串是什麼。


然後自己可以建張表:

{【1->1】, 【2->3】, 【3->5】, 【4->7】, 【5->9】, 【6->;】}

沒看出什麼規律,反過來成654321試一遍。


{【6->6】 ,【5->6】, 【4->6】, 【3->6】 , 【2->6】, 【1->6】}

發現第一個的值都是一樣的,第二個值比原值差一,第三個差二。

123456的6對應;,6+5=11   這裏成了;,顯然有過編程基礎的就可以看出來了。

規律很簡單:

第一位的ASCII碼+0

第二位的ASCII碼+1

第三位的ASCII碼+2

……

第n位的ASCII碼+n-1

而這裏已被加密的串爲:“6285e9k?

自己查表不如極速編程,字符串處理的題目比較建議用C++來做,因爲可以直接char類型和int類型做運算。

#include "stdafx.h"
#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
	char arr[9] = "6285e9k?";
	for (int i = 0; i < 8; i++) {
		arr[i] = arr[i] - i;
	}
	cout << arr;
    return 0;
}

當然了,喜歡用Python的夥伴們也可以自己寫一下。這是我寫的:

estr = '6285e9k?'
dstr = ''
for i in range(0, len(estr)):
    dstr += chr(ord(estr[i]) - i)
print(dstr)


以下是圖式代碼:

C++:


Python:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章