• 攻防世界web新手练习区


    攻防世界web新手练习区

    view_source

    题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。

    Writeup:依题意,直接F12查看源代码

    get_post

    题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?

    Writeup:

    • 首先根据题目提交GET请求
    • 然后根据后面的提示信息利用HackBar提交POST请求

    robots

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

    Writeup:扫描目录,进入robots.txt ,发现 f1ag_1s_h3re.php,在进入f1ag_1s_h3re.php,随后得到flag

    backup

    题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!

    Writeup:访问备份文件

    注:常见备份文件的后缀:

    .rar
    .zip
    .7z
    .tar.gz
    .bak
    .swp
    .txt
    .html
    linux中可能以" ~ " 结尾
    

    尝试可以知道index.php的备份文件名为index.php.bak

    这时会能下载一个index.php.bak的文件,将此文件用记事本打开

    题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’

    Writeup:按F12,在控制台中输入

    alert(document.cookie)
    

    弹出cookie

    地址栏输入

    http://220.249.52.133:37896/cookie.php
    

    页面显示

    提示要查看http响应内容

    得到flag

    disabled_button

    题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?

    Writeup:打开界面有个flag的按钮无法按下

    F12进入控制台

    将这个disabled改成abled,按钮就能按下了

    weak_auth

    题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。

    Writeup:

    随便乱输

    提示需要用admin登陆

    然后密码随便的

    提示密码错误

    用burpsuite字典爆破得到密码为123456或123456.

    登陆得到flag

    xff_referer

    题目描述:X老师告诉小宁其实xff和referer是可以伪造的。

    Writeup:网页显示

    抓包,修改http头

    X-Forwarded-For:123.123.123.123
    

    提示我们必须来自https://www.google.com,所以修改头

    referer:https://www.google.com
    

    command_execution

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

    Writeup:首先尝试ping一下127.0.0.1,成功并显示

    于是我们尝试用&&符号执行多个命令,先尝试一下ls命令,输入

    127.0.0.1 &&ls
    

    能成功执行ls命令。于是顺理成章查找用find命令所有以 .txt 结尾的文件。输入

    127.0.0.1 &&find / -name "*.txt"
    

    看到第一个就是flag.txt,于是利用命令cat 直接查看它

    127.0.0.1 && cat /home/flag.txt
    

    得到flag

    simple_php

    题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

    Writeup:

    <?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而a不为0,这里我们可以令a=0+任意字母,b不能为数字且b要大于1234,令b=12345+任意字母

    于是在地址后面接上

    /?a=0a&&b=12345a
    

    得到flag

    webshell

    题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。

    Writeup:

    通过中国蚁剑,密码为shell连接,然后查看文件,发现一个flag.txt,点开就能有flag

    simple_js

    题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

    Writeup:

    查看网页源码

    
    <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>
    
    

    简单分析之后我们发现,在dechiffre()函数中,并没有使用到我们输入的pass_enc变量,也就是说我们无论输入的密码是多少,输出的都是一样的
    其实输出值就是

    pass="70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"
    

    转化成ASCII码

    F,A,U,X, ,P,A,S,S,W,O,R,D, ,H,A,H,A
    

    看到下面有一串

    "x35x35x2cx35x36x2cx35x34x2cx37x39x2cx31x31x35x2cx36x39x2cx31x31x34x2cx31x31x36x2cx31x30x37x2cx34x39x2cx35x30"
    

    将其转化成十进制

    "55,56,54,79,115,69,114,116,107,49,50"
    

    跟变量pass很像,将其转化成ascii码

    "7,8,6,O,s,E,r,t,k,1,2"
    

    根据题目描述flag格式为Cyberpeace{xxxxxxxxx},提交后提交成功
    flag:Cyberpeace{786OsErtk12}

  • 相关阅读:
    搭建个人Spring-Initializr服务器
    “不蒜子”统计总访问人数脚本
    基于Hazelcast及Kafka实现的分布式锁与集群负载均衡
    虚拟机部署hadoop集群
    程序员、黑客及开发者之间的区别
    今日校园自动登录教程
    逆向DES算法
    来自穷逼对HttpCanary的蹂躏
    今日校园提交签到和查寝-Java实现
    JS 判断数据类型方法
  • 原文地址:https://www.cnblogs.com/just-like-this/p/13714956.html
Copyright © 2020-2023  润新知