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("\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"));
 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{},过了。

 

 
posted @ 2020-02-13 20:31  Chiluoyi  阅读(373)  评论(0编辑  收藏  举报