Hack This Site(Level 1-6)

版权声明:本文为Dark Pigeon原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37217636/article/details/80712833

自己看了一下,代码那部分乱了,可以自己用电脑看或者浏览器模拟电脑请求。

我把代码顺便截图一起发一下。

不废话了,直接从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:


猜你喜欢

转载自blog.csdn.net/m0_37217636/article/details/80712833
1-6