地址:http://overthewire.org/wargames/natas/

level 0 -> level 1

You can find the password for the next level on this page.(你可以在此界面找到下一级别的代码)

于是查看源码,发现答案在注释中

natas:gtVrDuiDfck831PqWsLEZy5gyDz1clto

 level 1 -> level 2

You can find the password for the next level on this page, but rightclicking has been blocked!(你可以在此界面找到下一级别的密码,但是右键单击已被阻止)

F12查看源码,发现答案在注释中

natas2:ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi

level 2 -> level 3

There is nothing on this page(此页面没有任何内容)

首先查看源码,发现img标签,于是访问这个这个链接http://natas2.natas.labs.overthewire.org/files/pixel.png。

没有任何发现,使者访问它的上一级路径http://natas2.natas.labs.overthewire.org/files,发现user.txt,单击打开,得到密码

natas3:sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14

level 3 -> level 4

There is nothing on this page(此页面没有任何内容)

还是查看源码,发现注释中有提示

<!-- No more information leaks!! Not even Google will find it this time... -->

Google Allo不会找到它,我们知道Google 是搜索引擎,不让搜索引擎爬取只需在网站下放一个robots.txt文件,试着访问该文件http://natas3.natas.labs.overthewire.org/robots.txt

页面跳转

User-agent: *
Disallow: /s3cr3t/

第一行:* 表示所有搜索引擎

第二行:Disallow 表示禁止访问,后面接目录或文件名

于是构造连接访问该目录http://natas3.natas.labs.overthewire.org/s3cr3t/

发现user.txt,单击打开,得到密码

natas4:Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ

level 4-> level 5

Access disallowed. You are visiting from "http://natas4.natas.labs.overthewire.org/" while authorized users should come only from "http://natas5.natas.labs.overthewire.org/"(访问不被允许,只能来自某个特定的URL)

知识点:HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的首先F12打开火狐浏览器的开发者工具,切换到网络(Network)选项,重新载入,查看页面请求,发现浏览器请求http://natas4.natas.labs.overthewire.org页面的请求头的Referer:http://natas4.natas.labs.overthewire.org

可以利用hackbar构造referer:http://natas5.natas.labs.overthewire.org

页面跳转,得到密码

natas5:iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq

level 5 -> level 6

Access disallowed. You are not logged in(访问不被允许,你没有登录)

明明登录了却说没登录,这里涉及http协议的一个知识点cookie了。http协议是一种无状态的协议,每次穿输完数据就会断开连接,这时候就靠cookie进行身份验证了。cookie由服务器分配器给浏览器,存储了会话状态和身份信息,之后每次http 请求,都会带上cookie信息给服务器,服务器会根据cookie信息做出不同的响应。

于是我们F12查看网络选项发现cookie中的loggedin=0,用hackbar改为1即可

natas6:aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1

 level 6 -> level 7

页面提示Input secret :,和一个提交按钮以及view sourcecode按钮。可知需要提交一个特定的参数才会返回密码。

首先查看源码,发现关键代码

<?include "includes/secret.inc";if(array_key_exists("submit", $_POST)) {if($secret == $_POST['secret']) {print "Access granted. The password for natas7 is <censored>";} else {print "Wrong secret";}}
?>

很明显,是需要我们输入的信息同secret.inc中的secret作比较,于是构造链接访问http://natas6.natas.labs.overthewire.org/includes/secret.inc

页面成功跳转,但是为空白页面无任何信息,说明代码被解析,查看源码,得到secret

<?
$secret = "FOEIUWGHFEEUHOFUOIU";
?>

输入,点击提交,返回密码

natas7 : 7z3hEENjQtflzgnT29q7wAvMNfZdh0i9

level 7 -> level 8

页面有Home和About两个按钮,分别点击后链接变为http://natas7.natas.labs.overthewire.org/index.php?page=home和http://natas7.natas.labs.overthewire.org/index.php?page=about

查看源码发现有一句话被注释掉了

<!-- hint: password for webuser natas8 is in /etc/natas_webpass/natas8 -->

通过浏览器F12查看页面请求,发现访问Home和About都是GET方式提交参数访问的,而不是直接跳转,加上这句可以猜测是文件包含漏洞,随意构造参数(例:about1)测试一下,有如下信息

证明确实是文件包含漏洞,于是将/etc/natas_webpass/natas8作为参数传入,得到密码

natas8 : DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe

 level 8 -> level 9

查看源码,发现关键代码

<?$encodedSecret = "3d3d516343746d4d6d6c315669563362";function encodeSecret($secret) {return bin2hex(strrev(base64_encode($secret)));
}if(array_key_exists("submit", $_POST)) {if(encodeSecret($_POST['secret']) == $encodedSecret) {print "Access granted. The password for natas9 is <censored>";} else {print "Wrong secret";}
}
?>

这是一道信息安全加密问题

base64_encode是进行base64加密

strrev是将字符串倒过来

bin2hex是将assic码转化为十六进制

于是构造

<?php
echo base64_decode(strrev(hex2bin("3d3d516343746d4d6d6c315669563362")));
?>

得到oubWYf2kBq,输入后点击提交得到密码

natas9 : W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl

 level 9 -> level 10

<?
$key = "";if(array_key_exists("needle", $_REQUEST)) {$key = $_REQUEST["needle"];
}if($key != "") {passthru("grep -i $key dictionary.txt");
}
?>

知识点:

passthru()函数用来执行外部命令的

grep -i 为不分大小写匹配查询

既然调用系统命令,可以尝试命令注入,先用;截断,在构造查看命令 cat /etc/natas_webpass/natas10;

得到密码

natas10 : nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu

level 10 -> level 11

For security reasons, we now filter on certain characters(出于安全原因,我们过滤掉了某些字符)

查看源码,发现;|&被过滤了,但是grep支持正则表达式,于是可以构造 .* /etc/natas_webpass/natas11提交

natas11:U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK

natas通关小游戏(未完待续)相关推荐

  1. javascript有用小功能总结(未完待续)

    1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...

  2. linux引数列项目过长,Linux 命令个人总结====== 未完待续 个人认为比较重要

    Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789]命令.文件. [选项参数]: 数字"1"表示用户命令 ...

  3. pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)

    1. SRCNN 1.1. Contribution end-to-end深度学习应用在超分辨领域的开山之作(非 end-to-end 见 Story.3 ). 指出了超分辨方向上传统方法( spar ...

  4. APP被苹果App Store拒绝的79个原因(未完待续)

    作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天dApps收集了常见的被拒的原因,以便更多开发者了解. APP被苹果APPStore拒绝的各种原 ...

  5. 程序人生(创)一个新手程序员的两三事(未完待续...)

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53375654 本篇博文同时在论坛连载:http://bbs.csdn.net/topi ...

  6. 《图解 HTTP》读书笔记(未完待续)

    ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址. MAC( Media Access Contro ...

  7. WindowsMobile应该如何发展?(未完待续)

    MEDC2007已经过去两周了,作为WindowsMobile软件应用及开发界的一次盛会,本次大会后留给我的不仅仅是绚丽的UI,强大的功能.新的开发工具.而是更多的关于WindowsMobile在中国 ...

  8. 学完oracle 再学mysql_一篇文章让Oracle程序猿学会MySql【未完待续】

    一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...

  9. Android仿朋友圈照片定点放大和滑动查看(未完待续)

    最近公司的项目中有一个图片加载和查看功能实现,具体是说通过列表项加载小图片,点击放大图片并且可以左右翻页,放缩等等,类似于微信朋友圈的照片墙功能.拿到这个需求后我想了想,图片列表首选当然是Recycl ...

最新文章

  1. java中关于DecimalFormat四舍五入的用法
  2. python调用接口requests_【python接口自动化】- 使用requests库发送http请求
  3. 新生儿信息管理系统升级说明
  4. SAP Fiori Elements 公开课第二单元学习笔记:Fiori Elements 架构
  5. oracle游标语法举例,PL/SQL语句块基本语法(ORACLE存储过程,函数,包,游标)
  6. [译]ABP vNext介绍
  7. C语言对stm32f103程序,STM32F103WIFI程序C语言
  8. 第三方服务-极光推送
  9. oracle sql group_con,SQL:Group Functions,GROUP BY,HAVING
  10. UVA11577 Letter Frequency【文本】
  11. PATH=ASSA脚本学习区
  12. vue项目封装腾讯TcPlayer播放器
  13. 基于51单片机的电烤箱微波炉数码管显示proteus仿真
  14. 腾讯Bugly,简单实用的崩溃日志收集
  15. 科学前沿 AI共拓!AI for Science论坛重磅来袭
  16. 对现有计算机应用的建议,对计算机课程的建议
  17. 视频点播和OSS两个产品之间的区别与联系
  18. android gps磁偏角,GPS数据格式解析
  19. 多行溢出隐藏的解决办法
  20. Microsoft Bitlocker企业级管理部署方案

热门文章

  1. PHP税前税后,php计算税后工资的方法
  2. FFmpeg video filter FATE测试过程介绍
  3. 明天上午10点,准时开抢!
  4. 赛事足球系统开发方案
  5. Python之画国旗
  6. vuex的五大辅助函数使用技巧
  7. sql查询——范围查询
  8. Linux服务器怎么修改远程端口
  9. 数值问题简述:数值溢出、病态条件
  10. HTTP Client Post 和 Get 方式(新手使用)