黑客丛林之旅——挑战的不仅仅是黑客技术
简介:近几年玩过国内、国外许多黑客闯关的游戏,它们大多数是以web脚本技术为主要挑战项目。也有少部分用到反编译、软件破解、社会工程学或其它非web方面的技术。
现在,我也来设计一套黑客技术闯关题目,力争把技术面做得更广、更深一些。欢迎白帽子、黑帽子等各色帽子们前来指教!
本游戏的关卡设计思路是由易到难,由web客户端技术到web服务器端技术,再扩展到传统软件技术、新型应用程序技术,以及加密解密、社会工程学等。中间也会有部分关卡用到比较老的技术或思路。
第一关
解题思路
审查页面源码即可
WriteUp
第二关
解题思路
页面源代码中发现隐藏表单,直接post隐藏表单的内容
WriteUp
审查页面源码可以发现无论输入什么表单都是提交不了的,所以解题的关键不是第一个input的内容
发现有个隐藏的表单,那么要提交的应该是这个隐藏的input才对,直接post隐藏表单的value值即可
第三关
解题思路
篡改cookie
WriteUp
审查页面源码没发现有价值的,那么Burp Suite看看
发现cookie一栏里有个login=no,改为yes即可
第四关
解题思路
莫斯电码而已
WriteUp
第五关
解题思路
base64直接解
WriteUp
密码已经加密放在了提示里面,直接解密就行
第六关
解题思路
默认端口
WriteUp
mstsc vnc :远程桌面
MSSQL MySQL Oracle :数据库
共同点是都有默认端口
mstsc 默认端口:3389
vnc 默认端口:5901
3389 + 5901 = 9290
所以再找出三个数据库的默认端口相加即可
第七关
解题思路
gif一帧一帧看即可
WriteUp
把gif分解成帧,发现提示
直接按提示提交就可以了
第八关
解题思路
小小脑洞
WriteUp
通过作者的主页(http://www.fj543.com/)可知作者弟弟的名称,再有作者的网名fj543可推测答案为fj573
第九关
解题思路
修改User-Agent
WriteUp
用Burp Suite抓包后修改浏览器标识和url即可
第十关
解题思路
爆破,命令行type指令
WriteUp
除了密码不长之外没有其他提示,只能爆破
用时2s爆破出密码,解压得到10token.exe,运行后产生txt文件,不过无法直接打开
这时需要用到命令行的type指令
涨姿势点
type指令打开常规方法无法打开的文件
第十一关
解题思路
简单隐写
WriteUp
一个24*24的gif怎么会有70多kB?
很明显隐藏有其他数据
不过binwalk却没发现什么,那么通过gif的格式结构搜索特定数值,这时发现隐藏的数据
可以知道隐藏了一个wav格式的音频文件,分离出音频文件,打开音频听提示即可
第十二关
解题思路
猜测题目应该是对软件进行逆向分析得出code值算法,不擅长这种方法,那就取巧吧
WriteUp
软件运行如图,可以知道是通过发送网络数据包进行认证,所以ip地址是关键,用OD载入软件搜索unicode可得
可以知道认证ip为:'http://www.fj543.com/hack/'
User-Agent为:'Mozilla/4.0 (compatible: HackersGameBrower)'
认证分为两个step,那么两次认证的code值应该是不同的,这里常规的方法是逆向分析出code值算法。
我采取的是爆破法,因为据软件运行时的临时ID和网页临时ID推测code值都是三位数,那么直接爆破就很简单
import requests
con = requests.Session()
header = {'User-Agent': 'Mozilla/4.0 (compatible; HackersGameBrowser)'}
cookie = {'ASPSESSIONIDSCRQQRTC':'BLNFHKCCLKAHGNCLHGFDFFLM',
'_D_SID':'C566D105AFA3210DEC658FCF929AADF9',
'Hm_lvt_ddc172cd878cb9d6da5a109ab508be16':'1505537184',
'Hm_lpvt_ddc172cd878cb9d6da5a109ab508be16':'1505538837',
'guoguan':'11'}
url = 'http://www.fj543.com/hack/?act=step2&code=%d'
h1 = con.get('http://www.fj543.com/hack/?act=step1&code=235',headers=header,cookies=cookie)
print(h1.text)
for i in range(1,1000):
h = con.get(url%i, headers = header,cookies = cookie)
if 'Bad' in h.text:
continue
else:
print(h.text,i)
break
爆破后可知step2的code值为245,浏览器访问以下ip即可
' http://www.fj543.com/hack/?act=step2&code=245'
第十三关
解题思路
sql注入,猜测列名,爆破
WriteUp
本关参考资料
先到/hack/13sql.asp,通过语句 944 and 1=1 和 944 and 1=2 可知此查询页面存在sql注入漏洞
可以用sqlmap进行后续注入工作,这里我采取了另一个思路即:
猜测密码字段为pwd 使用like指令猜测密码范围
将范围限定为a-z A-Z 0-9,进行爆破
从爆破结果可知密码为 bkpty的组合,生成字典后再次爆破即可
import itertools #生成字典
f = open('zidian.txt','w')
for i in itertools.permutations('bkpty',5):
c = ''.join(i)
f.write(c + '\n')
f.close()
回到关卡初始页面,拦截数据包导入字典进行爆破
爆破出密码
输入密码即可过关
第十四关
解题思路
逆向
WriteUp
本关参考资料
又是逆向。。,学会了再补过程