xctf攻防世界web新手练习区--write up

view source

题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。
在这里插入图片描述
在这里插入图片描述
打开题目后显示FLAG is not here,而且题目描述提示
鼠标右键不管用
了。这时想到F12键打开开发者工具,查看器可以查看页面源代码。F12----查看器直接得到答案。
在这里插入图片描述

get post

**题目描述:**X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
在这里插入图片描述
刚打开题目,要求“请用GET方式提交一个名为a,值为1的变量”,GET方一般为在url后拼接参数,只能以文本的方式传递参数。因此直接在http://111.198.29.45:39706/后进行拼接http://111.198.29.45:39706/?a=1,输出结果为在这里插入图片描述
以get方式提交参数后,又要求“请再以POST方式随便提交一个名为b,值为2的变量”,提交post请求用火狐插件hackbar,
在这里插入图片描述
执行后输出cyberpeace{xxxxxxxxxxxxxxxxxxxxxxxxx}
在这里插入图片描述

robots

题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
在这里插入图片描述

首先我们来学习一下Robots协议。

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
robots协议通常以robots.txt存在,robots.txt文件是一个文本文件,robots.txt是一个协议,而不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。

robots.txt文件写法:

User-agent: * 这里的代表的所有的搜索引擎种类,是一个通配符
Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录
Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
Disallow: /cgi-bin/
.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /
?* 禁止访问网站中所有包含问号 (?) 的网址
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。
Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
Allow: /tmp 这里定义是允许爬寻tmp的整个目录
Allow: .htm$ 仅允许访问以".htm"为后缀的URL。
Allow: .gif$ 允许抓取网页和gif格式图片
Sitemap: 网站地图 告诉爬虫这个页面是网站地图

学习完robots协议后我们看这个题

在题目给出的URL后输入/robots.txt即http://111.198.29.45:49905/robots.txt后显示在这里插入图片描述
f1ag_1s_h3re.php这个页面不允许被爬取,查看一下f1ag_1s_h3re.php页面得到正确答案在这里插入图片描述

backup

题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
在这里插入图片描述
在这里插入图片描述
打开题目后提示“你知道index.php的备份文件”,备份文件通常为文件名+.bak。输入后提示下载
在这里插入图片描述
用Notepad++打开得到正确答案,
在这里插入图片描述

cookie

题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?
在这里插入图片描述
打开题目提示“你知道什么是cookie吗?”
在这里插入图片描述
利用开发者工具F12键—网络,查看消息头看到“Cookie look-here=cookie.php”
在这里插入图片描述
根据提示信息,在URL后加上"/cookie.php"即http://111.198.29.45:47420/cookie.php,查看网络消息头得到正确答案,
在这里插入图片描述

disabled_button

题目要求:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
在这里插入图片描述
打开题目如图所示
在这里插入图片描述
通过开发者工具F12查看页面源代码,在按钮中用了‘disabled=" "’属性,将其删掉,按钮便可正常使用。
在这里插入图片描述
在这里插入图片描述
点击flag按钮后得到正确答案,
在这里插入图片描述

simple js

题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
在这里插入图片描述
打开题目后,有一个Enter password框,要求输入密码,随便输入“123”
在这里插入图片描述
输入“123”结果为
在这里插入图片描述
开发者工具F12查看页面源代码
在这里插入图片描述
将JS代码复制出来进行分析

   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("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));

    h = window.prompt('Enter password');
    alert( dechiffre(h) );

看到\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"想到把\x转换为%,将字符串转换为URL编码,%35%35%2c%35%36%2c%35%34%2c%37%39%2c%31%31%35%2c%36%39%2c%31%31%34%2c%31%31%36%2c%31%30%37%2c%34%39%2c%35%30
解码得:55,56,54,79,115,69,114,116,107,49,50
在这里插入图片描述
将这串数字进行ASCII码转换得:786OsErtk12
根据提示flag格式为Cyberpeace{xxxxxxxxx} ,提交Cyberpeace{786OsErtk12}得到正确答案。

xff referer

题目描述:X老师告诉小宁其实xff和referer是可以伪造的。
在这里插入图片描述
打开题目,提示ip地址必须为123.123.123.123
在这里插入图片描述
利用X-Forwarded-For Header 工具可以改主机IP地址
在这里插入图片描述
更改ip地址后,页面显示“必须来自https://www.google.com”,这里利用burp抓包,改包(burp不会用的自行补习)
在这里插入图片描述
将抓到的包发送到Repeater重放模块,进行改包,在Request添加“Referer:https://www.google.com”,点击Go,在Response得到答案。
在这里插入图片描述

weak auth

题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。
在这里插入图片描述
打开题目,看到一个登陆框,
在这里插入图片描述
这个题目为weak auth(弱身份验证),考验弱密码,直接输入admin,123456得到flag(可能运气爆棚,一下就猜出来了)。
在这里插入图片描述

webshell

题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
在这里插入图片描述
打开题目,看到“你会使用webshell吗?<?php @eval($_POST['shell']);?> ”,在这里插入图片描述
看到一句话木马,而且题目描述提示一句话木马放在index.php中。用菜刀连接。
在这里插入图片描述
连接后看到flag.txt文件。
在这里插入图片描述
读取flag.txt文件得到答案。
在这里插入图片描述

command execution

题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
在这里插入图片描述
打开题目,看到ping命令,
在这里插入图片描述
首先了解一下Windows和Linux命令执行知识:
command1 && command2 先执行command1后执行command2
command1 | command2 只执行command2
command1 & command2 先执行command2后执行command1

因此在输入ping的地址中构造命令“127.0.0.1 && ls”,命令成功执行
在这里插入图片描述
找存放flag文件的地址,
在这里插入图片描述
利用cat命令读取flag.txt文件内容。
在这里插入图片描述

simple php

题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
在这里插入图片描述
打开题目看到源码,
在这里插入图片描述
对源代码进行分析,

<?php
show_source(____FILE__ __);
include("config.php");
 //$_GET收集GET方式表单的值,对任何人可见,@屏蔽报错
$a=@$_GET['a'];   
$b=@$_GET['b'];    
if($a==0 and $a){ 
	echo $flag1;
}
//  is_numeric()函数:用于检测变量是否为数字或数字字符串,如果指定的变量是数字和数字字符串则返回TRUE,否则返回FALSE。
if(is_numeric($b)){      
    exit();
}
if($b>1234){
    echo $flag2;
}
?> `

前半段:flag1:http://10.10.10.175:32779/index.php?a=a 获得
php若类型比较会忽略字母,
后半段:flag2:http://10.10.10.175:32779/index.php?a=a&b=1235b
获得答案,
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43081170/article/details/94717446