攻防世界 web 新手题小结

本文介绍了多种渗透测试技巧,包括查看页面源代码、利用HTTP请求方法、利用robots.txt、备份文件、cookie、禁用按钮、弱口令认证、命令执行漏洞、PHP代码审计、referer绕过以及webshell使用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01view_source

方法:在下用的firefox,鼠标右键可查看页面源代码,试了试不行。那么F12,即可得到。
收获:鼠标右键不能用,与前端函数有关,在该页面中我们可以发现有这两个函数,

1. document.oncontextmenu=new Function("return false") //是右键菜单禁用;
2. document.onselectstart=new Function("return false") //是禁止选中页面上的内容;
3. document.onselectstart=new Function("return false")//是禁止复制在页面上选中的内容;(补充)

 

02get_post

HTTP通常的两种请求方法是get和post.

方法一:首先进入容器会看到

那么就在url后加上?a=1,然后得到

这时有三种方法:1.用firefox插件Max HacKBar,,得到flag;

方法二:用burp抓包,send to repeater,加上b=2 send,得到flag;

方法三:不用插件,,某位大佬的。在查看器中进行如图修改,即可得到flag。

 

03robots

方法:在url后加上robots.txt,会得到,然后访问flag_1s_h3re.php,即可得到flag。

收获:当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。并且,robots.txt必须放在一个站点的根目录下,而且文件名必须是小写。robots.txt就是告知搜索引擎哪些是允许访问的,哪些是不想被搜索引擎收录的。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。但是,robots.txt不是防火墙,不能阻止访问。

 

04backup

方法:在url后加上Index.php.bak,访问,在f12中,即可得到flag.

收获:常见的备份文件后缀名有:.git  .svn  .swp  .bak  .bash_history  .~

  php的备份有两种:*.php~和*.php.bak。  这道题也可以用py脚本解决,扫目录,即可得到地址。也可以用御剑扫描进行解决。

 

05cookie

分析:首先会看到这个,然后f12查看,cookie,,然后就在url后加上cookie.php,访问,看到,提示我们在响应头里。

方法一:burp抓包,并send to repeater,而后send,在响应头里即可得到flag。

方法二:firefox,访问http://220.249.52.133:54804/cookie.php,f12,在网络一栏中,可看到访问cookie.php的数据包,

收获:Cookie是当主机访问Web服务器时,由 Web 服务器创建的,将信息存储在用户计算机上的文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理。

 

06disabled_button

方法一:打开后,发现,f12,在查看器一栏中,将disabled改为abled或直接将disabled=""删除,然后按钮就可以点了。点击即可得到flag.

方法二:审计form表单代码,post传值auth=flag,也可以得到flag.

(但是我在用Burp实现的时候却无法成功,如下图),如果哪位大佬懂的话,希望在评论区指点小弟下。

收获:html的相关标签及相应的属性

 

07weak_auth

题目简介:打开后,如图

需要输入账号和密码,然后随便输入,会出现弹窗(please login as admin)在f12发现

方法:burp爆破,配置好之后,打开,抓包,send to Intruder,

然后设置爆破点为password:将admin两边的$去掉,将password的值两边加上$.

加载字典,load加载字典,然后开始爆破

发现,密码为123456时length不一样,于是在响应包里得到flag。

收获:burp的爆破功能,以及用Python,c++创建字典的方法.


08command_execution

题目:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

waf,web应用防火墙,Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。所以本题环境没有waf。

方法一:1.在文本框内输入127.0.0.1 | find / -name "flag.txt" ,查找flag所在位置

2.在文本框内输入 127.0.0.1 | cat /home/flag.txt 可得到flag

方法二:1.在文本框中输入127.0.0.1 && ls 查看当前目录下的文件

2.输入127.0.0.1 && ls../ 查看上一级目录

3.输入127.0.0.1 && ls../../  查看上一级目录

4.输入127.0.0.1 && ls../../../  查看上一级目录,发现有个home的文件,不妨打开看看

5.输入127.0.0.1 && ls ../../../home 查看该文件,发现flag.txt

6.输入127.0.0.1 && cat ../../../home/flag.txt 打开该文件,

方法三:requests库,这是xctf平台某位大佬的解题方法。同时requests库的相关使用参见这位大佬的requests库基本使用   和这位大佬的Python-第三方库requests详解    ,个人感觉收益颇丰。

收获:

| 的作用为将前一个命令的结果传递给后一个命令作为输入

&&的作用是前一条命令执行成功时,才执行后一条命令

还有相关指令要学习,find ,cat ,ls  等指令。

 

09simple_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;
}
?> 

题目:打开后出现如下代码,

进行代码审计:1.get传参给$a和$b,如果$a==0 且 $a ,则返回$flag1;

2.is_numeric()函数,如果$b是数字或者数字字符串,则返回ture,exit()执行;否则,并且$b>1234

,则返回$flag2; 

3.这里要注意一点,php语言是弱类型比较,php中有两种比较符号

=== 会同时比较字符串的值和类型;

== 会先将字符串换成相同类型,再作比较,属于弱类型比较;

所以如果$a=string(string是任意字符串),则‘string’==0为真;

$b=12ss,则‘12ss’==12为真,

方法一:返回flag1.   url后加上index.php?a=string (string为任意字符串),得到flag1的一半,还有半截未显示出来

<?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;
}
?>

Cyberpeace{647E37C7627CC3E401

在url后加上index.php?a=0&b=1235a,得到flag1的另一半(别问我咋知道的,瞎试试出来的,现在还没搞懂,懂的大佬可在评论区指点一下)

<?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;
}
?>

9EC69324F66C7C} 

方法二:返回flag2.  url后加上index.php?a=string&b=1235a (string为任意字符串),得到flag2.

<?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;
}
?>

Cyberpeace{647E37C7627CC3E4019EC69324F66C7C} 


10xff_referer

题目:描述及打开后看到的

方法一:burp抓包,send to repeater,将X-Forwarded-For添加进去(注意位置),得到如下图

由图知,https要设置,于是再将Referer:https://www.google.com 插入进去,得到flag.

 

 

 

收获:

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的.


11webshell

这个题的相关资料:

新手区webshell


12simple_js

题目:打开后,就让我输密码,随便输入,出现弹窗,查看源代码。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("\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) );

 开始代码审计:简化后,就是有个16进制的字符串"\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",将其转为10进制,然后根据ASCII码表对应的字符进行转化,得到flag。

方法:python

收获:

1.fromCharCode()函数

var n = String.fromCharCode(65);
输出结果: A

2.16进制字符串转10进制,python直接输出

3.数字转字符串,用遍历,chr()函数:将数组转为相应的ASCII码字符。

 

 

 

 

<think>好的,我现在需要解决用户在攻防世界Web新手中关于“backup”的解思路或资源的问。首先,我需要回忆一下相关的CTF目解方法,尤其是备份文件相关的常见技巧。 用户提到的目可能涉及备份文件,比如常见的备份文件后缀名有.bak、.swp、.swo等。通常在Web目中,访问这些备份文件可能会得到源码或其他关键信息,从而flag。 根据引用[1],在攻防世界练习区的第12中,通过备份文件得到了flag。例如,访问index.php的备份文件index.php.bak,下载后分析源码可能发现flag。另外,引用[2]中提到查看网页源代码的方法,虽然目不同,但思路类似,可能需要查看备份文件的源代码。 接下来,我应该整理解步骤。首先,尝试常见的备份文件路径,比如在URL后添加.bak,或者检查是否有备份文件被遗留。然后,下载备份文件并分析内容,查flag的位置。同时,可能涉及到使用工具如curl或wget来获取文件,或者直接浏览器访问。 需要确认用户提到的backup目具体是哪一个,但一般来说,备份文件相关的解步骤比较通用。可能还需要注意文件名的大小写,或者尝试不同的备份后缀,如~、.tar.gz等。 最后,要确保回答符合用户的要求,结构清晰,并且引用提供的参考资料。还要生成相关问,帮助用户进一步学习。</think>### 攻防世界 Web 新手 "backup" 解思路 在CTF目中,“backup”通常指通过网站备份文件(如`.bak`、`.swp`等)获取敏感信息或源码,进而发现flag。以下是常见的解步骤: #### 1. **备份文件探测** - **常见备份文件名**:尝试在目标URL后添加备份文件后缀,例如: - 若目页面为`index.php`,尝试访问`index.php.bak`、`index.php~`、`index.php.swp`等[^1]。 - 若目涉及文件下载功能,可尝试路径遍历漏洞(如`download.php?file=../../backup.sql`)。 #### 2. **下载并分析备份文件** - **直接访问**:若备份文件存在,浏览器可能直接下载或显示源码。例如,访问`http://example.com/index.php.bak`,若返回文件内容,则用文本编辑器查看。 - **代码审计**:在备份文件中搜索关键字如`flag`、`cyberpeace{`或敏感函数(如`exec()`、`system()`),定位flag逻辑。 #### 3. **工具辅助** - **目录扫描工具**:使用`DirBuster`、`gobuster`等工具扫描网站目录,寻备份文件。 ```bash gobuster dir -u http://example.com -w /usr/share/wordlists/common.txt -x bak,swp,php~ ``` - **手动验证**:结合目提示(如页面注释、报错信息)缩小文件范围。 #### 4. **实战示例** 根据引用[1],在攻防世界中,通过访问`index.php.bak`下载备份文件,发现flag直接硬编码在源码中: ```php <?php $flag = "cyberpeace{cfd7a84acc3b0314e85b47a2af6987fd}"; ?> ``` ---
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值