web-新手练习区

本文介绍了攻防世界Web新手区的几个练习,包括通过查看源码获取flag、利用robots协议构造URL、查找备份文件、解除按钮禁用以及解决简单的JS和PHP谜题。通过这些实践,读者可以学习到Web安全的基础知识。

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

  • view source

直接翻看源码得到flag:

  •  get post

两种传参方式,get可直接从地址栏中传递参数,post需要在控制台中传参:

接着是用post传递:

得到flag:

  • robots

robots协议,关于爬虫的,地址栏直接构造robots.txt,得到flag地址:

访问即得到flag:

  •  backup

备份文件,构造index.php~或index.php.bak,后者可以直接下载备份文件,此题用的是后者:

打开下载的文件,得到flag:

  • disabled button

打开控制台,发现按钮标签被禁,删掉即可:

 点击按钮得到flag:

  •  simple 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"

即是密码(flag)

python转码即可:

str1='\\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'
print(str1)

直接打印之后,得到一串数字,然后再在转换为字符串(flag):

list1=[55,56,54,79,115,69,114,116,107,49,50]
flag=''
for i in list1:
    flag+=chr(i)
print(flag)
  • simple 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进行判断,a满足值等于0,又不能为0;b满足值大于1234但不能是数字。

这里用到的是php弱类型,构造:

?a=0+''&&b=1234a

其中,a的值只要是0+任意字串即可,b只需要在任意大于1234的数值后加任意字符即可:

flag到手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值