XCTF web 新手练习区

Posted truthilia-12580

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XCTF web 新手练习区相关的知识,希望对你有一定的参考价值。

view_source

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

技术图片


Robots

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

技术图片
robots.txt的内容。

技术图片
打开f1ag_1s_h3re.php就可以看到flag。


backup

题目提示

技术图片

打开index.php.bak。

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

打开来是index.php的源码。

技术图片

找到flag。


cookie

技术图片

打开burpsuite抓包,查看cookie。

技术图片

Cookie: look-here=cookie.php

打开cookie.php

技术图片

再次用burpsuite抓包,send to repeater。

技术图片

在response里面看见flag。

技术图片 


disabled_button

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

应该是js。

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

 

技术图片

删掉disabled就可以点击了。

技术图片

点击之后获得flag。

技术图片


weak_auth

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

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

技术图片

用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

技术图片


get_post

技术图片

打开hackbar,用get方式传值。

技术图片

再用post方式传值。

技术图片

获得flag。


xff_referer

技术图片

ip地址必须位123.123.123.123

用xff来伪造ip。

打开burpsuite,拦截,send to repeater。

技术图片

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

技术图片

获得flag。


webshell

技术图片

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

看看有哪些文件。

技术图片

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

技术图片

获得flag。


command_execution

技术图片

拿127.0.0.1试一试。

技术图片

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

127.0.0.1&&ls

技术图片

查找txt格式的文件。

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

技术图片

找到了flag.txt

打开flag.txt

127.0.0.1&&cat /home/flag.txt

技术图片

找到flag。


simple_js

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

技术图片

技术图片

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

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

技术图片

  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码,转换来看看是什么。

技术图片

786OsErtk12

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

 

 

以上是关于XCTF web 新手练习区的主要内容,如果未能解决你的问题,请参考以下文章

XCTF web 新手练习区

攻防世界 WEB 新手练习区 答题(1-12题解)

XCTF攻防世界web新手区2——robots

XCTF攻防世界web新手区1——view_source

XCTF Web题练习 CAT writeup

攻防世界 MISC 新手练习区 答题(1-12题解)