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

地址: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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值