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
natas通关小游戏(未完待续)相关推荐
- javascript有用小功能总结(未完待续)
1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...
- linux引数列项目过长,Linux 命令个人总结====== 未完待续 个人认为比较重要
Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789]命令.文件. [选项参数]: 数字"1"表示用户命令 ...
- pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)
1. SRCNN 1.1. Contribution end-to-end深度学习应用在超分辨领域的开山之作(非 end-to-end 见 Story.3 ). 指出了超分辨方向上传统方法( spar ...
- APP被苹果App Store拒绝的79个原因(未完待续)
作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天dApps收集了常见的被拒的原因,以便更多开发者了解. APP被苹果APPStore拒绝的各种原 ...
- 程序人生(创)一个新手程序员的两三事(未完待续...)
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53375654 本篇博文同时在论坛连载:http://bbs.csdn.net/topi ...
- 《图解 HTTP》读书笔记(未完待续)
ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址. MAC( Media Access Contro ...
- WindowsMobile应该如何发展?(未完待续)
MEDC2007已经过去两周了,作为WindowsMobile软件应用及开发界的一次盛会,本次大会后留给我的不仅仅是绚丽的UI,强大的功能.新的开发工具.而是更多的关于WindowsMobile在中国 ...
- 学完oracle 再学mysql_一篇文章让Oracle程序猿学会MySql【未完待续】
一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...
- Android仿朋友圈照片定点放大和滑动查看(未完待续)
最近公司的项目中有一个图片加载和查看功能实现,具体是说通过列表项加载小图片,点击放大图片并且可以左右翻页,放缩等等,类似于微信朋友圈的照片墙功能.拿到这个需求后我想了想,图片列表首选当然是Recycl ...
最新文章
- java中关于DecimalFormat四舍五入的用法
- python调用接口requests_【python接口自动化】- 使用requests库发送http请求
- 新生儿信息管理系统升级说明
- SAP Fiori Elements 公开课第二单元学习笔记:Fiori Elements 架构
- oracle游标语法举例,PL/SQL语句块基本语法(ORACLE存储过程,函数,包,游标)
- [译]ABP vNext介绍
- C语言对stm32f103程序,STM32F103WIFI程序C语言
- 第三方服务-极光推送
- oracle sql group_con,SQL:Group Functions,GROUP BY,HAVING
- UVA11577 Letter Frequency【文本】
- PATH=ASSA脚本学习区
- vue项目封装腾讯TcPlayer播放器
- 基于51单片机的电烤箱微波炉数码管显示proteus仿真
- 腾讯Bugly,简单实用的崩溃日志收集
- 科学前沿 AI共拓!AI for Science论坛重磅来袭
- 对现有计算机应用的建议,对计算机课程的建议
- 视频点播和OSS两个产品之间的区别与联系
- android gps磁偏角,GPS数据格式解析
- 多行溢出隐藏的解决办法
- Microsoft Bitlocker企业级管理部署方案