网站 https://adworld.xctf.org.cn/task
01. view_source
问题描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。
解决方法: 使用view-source指令查看源码 view-source:http://——————
获取源码的一般方法:1 firefox访问后右键进行查看
2 view-source指令(如上)
02.Robots
问题描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
https://baike.baidu.com/item/Robots%E5%8D%8F%E8%AE%AE
解决方案:在该地址下直接访问robots.txt,获得如下界面:
继续访问 f1ag_1s_h3re.php 即可得到flag
03.backup
题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
解决方法:访问地址,根据提示
index.php的备份文件名是index.php.bak,直接访问index.php.bak,如下图
用txt打开即获得flag
04.cookie
题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
Cookie指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据
Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。
解决方法:方法一:使用burpsuite查看requests和response
方法二:F12打开火狐的hackbar
点击 网络,在消息头中可以看见 Set-Cookie look-here=cookie.php
继续访问cookie.php
在消息头中可看见flag
05.get post
问题描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
了解http请求方法,此处考察get和post两个最常用的请求方法。
HTTP协议中共定义了八种方法或者叫“动作”来表明对Request-URI指定的资源的不同操作方式,具体介绍如下:
GET:向特定的资源发出请求。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除Request-URI所标识的资源。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
https://www.cnblogs.com/qing123tian/p/10785372.html
https://www.w3school.com.cn/tags/html_ref_httpmethods.asp
解决方法:1、请用GET方式提交一个名为a,值为1的变量
在url后输入 ?a=1
2、请再以POST方式随便提交一个名为b,值为2的变量
F12进入火狐的hackbar,如下图
依次点击 Load URL > Post Data > 输入b=2
点击excute得到flag
06.simple php
问题描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
解决方法:进入题目看见源码如下
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
大致题意就是给a和b赋值可以各出现半段flag
在PHP中遇到数字与字符串进行松散比较()时,会将字符串中前几位是数字且数字后面不是”.",“e"或"E"的子串转化为数字,与数字进行比较,如果相同则返回为true,不同返回为false,后面的所有字符串直接截断扔掉。若输入的字符串是字母在前,如abc123,因为字符串首没有数字,只能识别转换成0。
输入?a=a&b=1235c得到完整flag
07.webshell
问题描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
webshell是web入侵的脚本攻击工具。简单的说来,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,
与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。
在数据中发现flag.txt,打开获得flag
08.weak_auth
问题描述:小宁写了一个登陆验证页面,随手就设了一个密码。
解决方法: 随意输入用户名和密码,出现以下提示:
继续使用admin为用户名,任意为密码
提示为密码错误
同时源码中可以看见提示
使用brupsuite进行抓包
发现123456是正确密码,输入得到flag
09.disabled_button
题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
解决方法:将源码中的disabled修改为abled
10.simple_js
题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
行为分析:无论输入什么都是错的,无论怎么输入都返回同一个错误提示。
解决方法:1 查看源代码,可以发现js代码
<html> <head> <title>JS</title> <script type="text/javascript"> function dechiffre(pass_enc){ var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"; var tab = pass_enc.split(','); var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length; k = j + (l) + (n=0); n = tab2.length; for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i])); if(i == 5)break;} for(i = (o=0); i < (k = j = n); i++ ){ o = tab[i-l]; if(i > 5 && i < k-1) p += String.fromCharCode((o = tab2[i])); } p += String.fromCharCode(tab2[17]); pass = p;return pass; } String["fromCharCode"](dechiffre("x35x35x2cx35x36x2cx35x34x2cx37x39x2cx31x31x35x2cx36x39x2cx31x31x34x2cx31x31x36x2cx31x30x37x2cx34x39x2cx35x30")); h = window.prompt('Enter password'); alert( dechiffre(h) ); </script> </head> </html>
分析发现输出的一直是70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65的ascii输出
真正的flag藏在下方那一串16进制数中x35x35x2cx35x36x2cx35x34x2cx37x39x2cx31x31x35x2cx36x39x2cx31x31x34x2cx31x31x36x2cx31x30x37x2cx34x39x2cx35x30
用python处理得到数组
再转换成ascii码
得到flag cyberpeace{786OsErtk12}
参考 https://www.52pojie.cn/thread-1256623-1-1.html