ADWORLD 攻防世界/web/新手练习题目

网站  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==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


            

原文地址:https://www.cnblogs.com/elegantcloud/p/13736926.html