zoukankan      html  css  js  c++  java
  • XCTF web 新手练习区

    view_source

    F12查看源码就可以得到flag。

    {D07BE773-8500-4F38-8C80-4864CE60E7B0}.png


    Robots

    用御剑扫描后台,找到robots.txt

    2020-02-13
    robots.txt的内容。

    {21A31EA6-55AD-4A7E-9920-8C2ED39A3C65}.png
    打开f1ag_1s_h3re.php就可以看到flag。


    backup

    题目提示

    chrome_2020-02-13_10-45-57

    打开index.php.bak。

    会下载一个文件,将后缀名改为txt就可以打开。

    打开来是index.php的源码。

    notepad_2020-02-13_10-49-55

    找到flag。


    cookie

    chrome_2020-02-13_10-53-00

    打开burpsuite抓包,查看cookie。

    java_2020-02-13_10-54-46

    Cookie: look-here=cookie.php

    打开cookie.php

    chrome_2020-02-13_10-56-27

    再次用burpsuite抓包,send to repeater。

    java_2020-02-13_10-57-45

    在response里面看见flag。

    java_2020-02-13_10-59-36 


    disabled_button

    题目给了我们一个不能按的按钮。

    应该是js。

    f12点选择元素,再选择button。

    Inkedchrome_2020-02-13_11-04-26_LI

    删掉disabled就可以点击了。

    chrome_2020-02-13_11-09-31

    点击之后获得flag。

    chrome_2020-02-13_11-10-59


    weak_auth

    打开网页,是一个登陆界面。

    随便输入一用户名和密码,提示用admin登陆。

    chrome_2020-02-13_11-24-11

    用admin和随便一个密码登陆,我写的是123456,没想到就这样解开了∑( 口 ||

    实际上这道题可以用bp的intruder来爆破。


    simple_php

    打开网页是一段php代码。

    1 <?php 2 show_source(__FILE__); 3 include("config.php"); 4 $a=@$_GET['a'];//get传a 5 $b=@$_GET['b'];//get传b 6 if($a==0 and $a){//a弱等于0并且a非空非0 7 echo $flag1; 8 } 9 if(is_numeric($b)){//b是数字则退出 10 exit(); 11 } 12 if($b>1234){//b大于1234 13 echo $flag2; 14 } 15 ?> 16 17

    由这张图知道,a要非空非0且弱等于0就得是字符串。

    参考链接

    b要满足条件可以在后面加上%00(空)或者是ox(拼接字符串)来绕过。

    构造payload:?a=”php”&b=12345ox

    获得flag

    chrome_2020-02-13_12-20-21


    get_post

    chrome_2020-02-13_12-22-13

    打开hackbar,用get方式传值。

    chrome_2020-02-13_12-24-58

    再用post方式传值。

    chrome_2020-02-13_12-25-42

    获得flag。


    xff_referer

    chrome_2020-02-13_12-27-15

    ip地址必须位123.123.123.123

    用xff来伪造ip。

    打开burpsuite,拦截,send to repeater。

    java_2020-02-13_12-31-46

    要求要来自谷歌,加上referer。

    java_2020-02-13_12-33-08

    获得flag。


    webshell

    chrome_2020-02-13_12-41-00

    这里已经把一句话告诉我们了,可以直接用中国菜刀链接,也可以用hackbar,这里采用hackbar的方式。

    看看有哪些文件。

    chrome_2020-02-13_12-45-21

    有一个flag.txt,打开来看看。

    chrome_2020-02-13_12-46-07

    获得flag。


    command_execution

    chrome_2020-02-13_13-01-04

    拿127.0.0.1试一试。

    chrome_2020-02-13_13-04-52

    没有问题,拿ls试一试(参考:参考链接

    127.0.0.1&&ls

    chrome_2020-02-13_13-07-21

    查找txt格式的文件。

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

    chrome_2020-02-13_19-08-57

    找到了flag.txt

    打开flag.txt

    127.0.0.1&&cat /home/flag.txt

    chrome_2020-02-13_19-10-25

    找到flag。


    simple_js

    打开题目,让你输入密码,随便输入一个。

    chrome_2020-02-13_19-53-09

    chrome_2020-02-13_19-53-54

    没有什么思路,看看源码吧。

    在源码里面看见了一段js代码。

    chrome_2020-02-13_19-55-43

      1 
      2     function dechiffre(pass_enc){
      3         var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
      4         var tab  = pass_enc.split(',');//把输入的依据‘,’分隔
      5                 var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
      6                         k = j + (l) + (n=0);
      7                         n = tab2.length;
      8                         for(i = (o=0); i < (k = j = n); i++ )//n=18
      9 			{o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
     10                                 if(i == 5)break;}//p=“FAUX P”
     11                         for(i = (o=0); i < (k = j = n); i++ ){
     12                         o = tab[i-l];
     13                                 if(i > 5 && i < k-1)
     14                                         p += String.fromCharCode((o = tab2[i]));
     15                         }//p=“FAUX PASSWORD HAH”
     16         p += String.fromCharCode(tab2[17]);//p=“FAUX PASSWORD HAHA”
     17         pass = p;return pass;//pass=p,return pass的内容
     18     }
     19     String["fromCharCode"](dechiffre("x35x35x2cx35x36x2cx35x34x2cx37x39x2cx31x31x35x2cx36x39x2cx31x31x34x2cx31x31x36x2cx31x30x37x2cx34x39x2cx35x30"));
     20 
     21     h = window.prompt('Enter password');
     22     alert( dechiffre(h) );
     23 

    仔细一看pass_enc除了开头出现了一次就毫无纯在感了Σ(っ °Д °;)っ,而且对最后return的结果没有影响,所以说无论输入什么出现的结果只会是FAUX PASSWORD HAHA……

    然后又看到了源码里面有一段以16进制显示的ascii码,转换来看看是什么。

    ShareX_2020-02-13_20-06-38

    786OsErtk12

    去提交一下,加上Cyberpeace{},过了。

     
  • 相关阅读:
    代码规范
    svn的牛逼操作反向merge
    QT 半透明遮罩(弹窗)
    ACE库 ACE_Handle_Set类解析
    linux系统如何启用ftp服务
    vim color
    Linux动态库应用
    自建工程makefile文件
    Makefile工程文件
    linux杂记
  • 原文地址:https://www.cnblogs.com/truthilia-12580/p/12304939.html
Copyright © 2011-2022 走看看